首页 > 代码库 > Apache QPID windows vs2010编译

Apache QPID windows vs2010编译

这几天使用apache qpid,网上关于在windows下的编译过程几乎没有,自己编译时候也废了点功夫,现记录以飨他人。

首先,可以确定的是qpid确实支持windows平台的。但是编译过程类似与linux编译过程,需要再次生成一次工程才能形成windows下的sln文件

第一步:准备环境,需要安装的软件如下:

1.ruby

2.python

3.cmake

4.boost

1.2项是用来再次生成工程用的,以后并不使用

3项是必要的,qpid是个cmake工程,符合发展趋势的

4项是编译必要的函数库,也建议devs都能使用,boost编译过程网上一大把,很容易编译

第二步:解压出qpid-cpp-0.28文件夹,注意,应当形成这样的文件夹树:

---任意文件夹名,例如qpid-cpp

-------qpid-cpp-0.28

-------cpp//自建的文件夹,必须要这个名字

之后把qpid-cpp-0.28下的所有东西复制到cpp文件夹下。

第三步:win+r  powershell,把qpid-cpp-0.28文件夹下的bld-winsdk.ps1文件拖进powershell,并加上参数:boost路径+空格+boost版本,例如1.53.0+空格+vs2010之类的+编译版本,x86或者x64,具体如下


之后会出现大堆的编译信息,不用管,最后会在qpid-cpp文件夹同层析目录树生成一个文件夹,名叫:

编译版本,x86或者x64+vs2010之类的,例如x86-vs2010,该目录下就是sln文件了,如果设置了denev的路径的话,就会自动编译的

该文件夹下的文件示例:



编译中可能问题:

1.个人编译boost后库路径根据个人喜好可能导致cmake找不到boost库位置,编译中可能提示:

这个错误我按照提示设置后好像没有效果,我采用了另一种办法,使用ue打开cpp/src/CMakeLists.txt 288行,

find_package(Boost ${Boost_minversion} REQUIRED COMPONENTS ${Boost_components})
改成

set(Boost_LIBRARY_DIRS "F:/BOOST/lib")
#find_package(Boost ${Boost_minversion} REQUIRED COMPONENTS ${Boost_components})

当然,具体的路径要看个人爱好修改,这样修改后就没问题了。




另外,跟这个相关的openmama项目,是部分有名的mq的一个高层抽象,用来屏蔽不用mq的函数差异,结合起来使用应该更加好一下把。

openmama是nyse开源出来的项目,具体的效果看官网上应该不错,需以验证。