系统环境:windows10
编译环境:vs2015
cmake:3.4.1
1.下载和安装
下载rabbitmq-c最新代码包:https://github.com/alanxz/rabbitmq-c/releases/tag/v0.8.0
下载cmake最新安装包:https://cmake.org/download/
2.使用cmake编译生成适合自己编译环境的工程
第一步:填写源代码路径
第二步:填写建立后的路径,build的文件夹一般建立在源代码路径里,也可以放在其他位置
第三步:点击配置按钮,在配置里面选择属于自己编译环境的名字
第四步:点击生成按钮,不出现运行失败就说明已经编译成功了
特别说明:在编译rabbitmq-c是如果出现如图的错误,可以去掉ENABLE_SSL_SUPPORT括号里的对勾。
生成了VS2015的工程文件后,先编译,然后install到你选定的路径,我的安装目录是:D:\rabbitmq-c。
二、Windows下编译SimpleAmqpClient
1、编译boost库
因为需要用到boost库,所以在编译SimpleAmqpClient之前,先要编译boost库。
https://www.cnblogs.com/oloroso/p/6050596.html
下载Boost库的源码,我下的是1.66版的。
通过VS2015的native tools来编译Boost库。
命令如下:
#编译
b2.exe --prefix=d:\boost_1_66_0 --build-type=complete--build-dir=build toolset=msvc-14.0 address-model=64 stage –j4
#安装
b2.exe --prefix=d:\boost_1_66_0 --build-type=complete--build-dir=build toolset=msvc-14.0 address-model=64 install
编译boost,参考http://archive.cnblogs.com/a/1979730/(建议使用--build-type=complete全编译,如果采用动态链接编译不会生成静态链接库文件,如libboost_chrono-vc100-mt-1_47.lib,编译SimpleAmqpClinet时会报链接错误:缺少libboost_chrono-vc100-mt-1_47.lib文件)。boost库文件命名规则参考http://blog.csdn.net/zzvnzz/article/details/7082263
2、编译SimpleAmqpClient
我没有选择支持SSL,所以编译出现一个错误,Channel.cpp(194): error C2511:'AmqpClient::Channel::Channel(const std::string &,int,const std::string&,const std::string &,const std::string &,int,const std::string&,const std::string &,const std::string &)': overloaded memberfunction not found in 'AmqpClient::Channel'.
我修改了一下这个构造函数,如下:
采用CMAKE生成VS2015工程。CMAKE配置如下图:
3、使用样例:
http://blog.csdn.net/csm201314/article/details/76377214