所需要的文件列表如下(目前都是最新版本):
首先说一下编译的依赖关系:
apr(无依赖)
apr-iconv(依赖apr)
Expat(无依赖)
apr-util(依赖apr , apr-iconv和Expat)
activemq-cpp-library(依赖上述所有库)
1 首先编译64为 expat ,di


打开项目后项目列表如下:

同样选择编译模式Release 64位,然后生成项目,会在项目目录下出现一个Release文件夹,里面的内容如下:

同样我们也是要expat.dll和expat.lib这两个文件。
2 打开aprutil.dsw
点击升级 ,选择否不覆盖
接下来正式开始编译,本人编译的是Debug版本Win64,以下所有编译均一样。
编译apr,
在include文件夹下找到apr.hw文件,以文本方式打开,找到宏定义“#define _WIN32_WINNT 0x0501”,将0x0501改为0x0600。至于为什么改成0x0600 ,右键生成
在apr\Debug目录下会生成两个文件libapr-1.lib和libapr-1.dll
编译apr-iconv,添加依赖项libapr-1.lib以及相应的头文件路径和依赖项路径,在apr-iconv\Debug目录下会生成两个文件libapriconv-1.lib和libapriconv-1.dll
编译apr-until,添加依赖项libapr-1.lib,libapriconv-1.lib,expat.lib(XML解析器)以及相应的头文件路径和依赖项路径生成libaprutil-1.lib和libapruril-1.dll
到这里我们需要的依赖库都编译完了
3 编译activemq-cpp-library
这一步其实也依赖上述所有的文件,打开项目后长这样,如下图。修改模式为ReleaseDLL 64位。将apr-util中的所有头文件都添加到activemq-cpp项目的依赖中。另外刚刚所有的lib也要添加到这个项目的附加依赖项中。

这里面我们需要在vs附加库依赖里面添加刚才编译的所有的库
Activemq-cpp-library编译
首先需要编译的是activemq-cpp这个项目,编译前工作:把头文件目录以及附加库目录设置好,在属性-》C/C++-》调试信息格式,设置为:程序数据库 (/Zi),否则会出现错误 D8016“/ZI”和“/Gy-”命令行选项不兼容。
去掉警告


附加库这里需要把刚才编译的都加进入头文件和依赖库
F:\acmq5\apr\include
F:\acmq5\apr-iconv\include
F:\acmq5\apr-util\include
F:\acmq5\apr-util\x64\Debug\libaprutil-1.lib
F:\acmq5\apr\x64\Debug\libapr-1.lib
F:\acmq5\apr\x64\Debug\libaprapp-1.lib
F:\acmq5\apr-iconv\x64\Debug\libapriconv-1.lib



输出文件名与目标文件名不一致,把输出文件名改成libactivemq-cppd.lib
编译成功,在目录{your_activemq-cpp-library_location}\activemq-cpp-library-3.9.3\vs2010-build\Win32\Debug下生成libactivemq-cppd.lib文件。
编译activemq-cpp-example项目,同理,添加头文件和库文件目录,生成activemq-cpp-example.exe程序,运行这个文件必须要和前面的那些lib文件放在同一级目录下,这是官网提供的一个activemq客户端实例,它实现的是生产者生成了2000个消息,消费者进行消费这2000个消息,生成topic消息,在http://localhost:8161/admin/topics.jsp可以看到。
这里我的服务器在192.168.110.149上,修改main文件
std::string brokerURI =
"failover:(tcp://192.168.110.149:61616"
编译完成,点击F:\acmq5\activemq-cpp-library-3.9.5\vs2010-build\x64\Debug\activemq-cpp-example.exe,得到结果如下,(直接在编译器运行出错,提示32位)

另外,单独编译consumer和producer项目时,添加头文件和库文件目录,以及附加的依赖项(各lib文件),编译过程中可能会出现“无法解析的外部符号问题”
缺少ws2_32.lib文件,添加该依赖项,这是由于代码中使用到了网络相关的API,该文件用于提供API接口。