activemq-cpp-library在VS2015下的编译

http://activemq.apache.org/cms/download.html下载最新版本的activemq-cpp,解压后,可以看到有一个vs2010-build文件夹,打开里面的activemq-cpp.sln。

阅读README.txt文档,根据提示,下载依赖库

  1. APR:http://apr.apache.org/
  2. CPPUnit:http://cppunit.sourceforge.net/cppunit-wiki/BuildingCppUnit1
  3. OpenSSL及其他:根据需要可选择不下载,但以上两个一定需要

在对activemq-cpp-library进行编译前,首先要确保依赖库的正常编译,查阅网上诸多资料,有分开逐个编译好再通过activemq-cpp-library的工程编译的,也有一次性全部一起编译的,本人尝试过一次性编译,未成功且错误较多不好判断哪个项目编译有问题,所以,本次展示的是分开编译的过程。

APR编译

APR库需要用到三个:apr、apr-iconv、apr-util,下载解压后把文件夹的版本号去掉。
由于后面两个需要依赖apr的生成,所以,首先需要编译的是apr这个项目,为了避免开太多窗口,我把所有的项目工程都加进去刚刚打开的activemq-cpp.sln中。

文件-》添加-》现有项目 选择{$your_apr_location}目录下的libapr.vcproj,libapriconv.vcproj,libaprutil.vcproj

接下来正式开始编译,本人编译的是Debug版本Win32,以下所有编译均一样。

  1. 编译apr,在apr\Debug目录下会生成两个文件libapr-1.lib和libapr-1.dll
  2. 编译apr-iconv,添加依赖项libapr-1.lib以及相应的头文件路径和依赖项路径,在apr-iconv\Debug目录下会生成两个文件libapriconv-1.lib和libapriconv-1.dll
  3. 编译apr-until,添加依赖项libapr-1.lib,libapriconv-1.lib,libexpat.lib(XML解析器)以及相应的头文件路径和依赖项路径生成libaprutil-1.lib和libapruril-1.dll

libexpat.lib这个库文件原来并没有包含进去,所以会有报错提醒,它存在于{$your_location}\apr-util\xml\expat\lib下。


至此,APR部分编译完成,一共生成六个文件:libapr-1.lib,libapr-1.dll,libapriconv-1.lib,libapriconv-1.dll,libaprutil-1.lib,libaprutil-1.dll

CPPUnit编译

添加项目{$your_location}\cppunit\src\CppUnitLibraries.dsw
至此,解决方案中会出现13个项目:
解决方案窗口图
除了cppunit需要编译外,其他可以先不管

编译cppunit,会生成cppunit.lib、cppunit_dll.dll、cppunit_dll.lib、cppunitd.lib四个文件。

错误问题:
出现copy错误,要通过属性页设置目标文件名$(ProjectName)-》 $(ProjectName)d

至此activemq-cpp-library的依赖库文件已全部生成,为方便起见,把前面所有的库文件全部打包一起放到activemq-cpp-library的lib目录下统一管理。(关于这一点,也可以根据文档中所述的,通过修改依赖库文件的目录结构为统一的格式,并设置好环境变量,如下图)
环境变量设置

目录结构

Activemq-cpp-library编译

首先需要编译的是activemq-cpp这个项目,编译前工作:把头文件目录以及附加库目录设置好,在属性-》C/C++-》调试信息格式,设置为:程序数据库 (/Zi),否则会出现错误 D8016“/ZI”和“/Gy-”命令行选项不兼容。
去掉警告
警告
输出文件名与目标文件名不一致,把输出文件名改成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可以看到。

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
要在你的项目中使用编译好的 ActiveMQ-CPP 文件(activemq-cpp-library-3.9.5),你需要进行以下步骤: 1. 下载 ActiveMQ-CPP 文件:从 ActiveMQ-CPP 的官方网站或其他可靠来源下载编译好的文件。确保下载的文件与你的项目的目标平台和编译器版本相匹配。 2. 创建一个新的 Visual Studio 项目:打开 Visual Studio,创建一个新的 C++ 项目,或者使用你已有的项目。 3. 设置项目属性:在 Visual Studio 中,打开你的项目属性页。选择 "C/C++" -> "常规" 选项卡,将 "附加包含目录" 设置为包含 ActiveMQ-CPP 头文件的目录。 4. 设置文件路径:在 "链接器" -> "常规" 选项卡中,将 "附加目录" 设置为包含 ActiveMQ-CPP 文件的目录。 5. 添加链接:在 "链接器" -> "输入" 选项卡中,将 "附加依赖项" 添加为 `activemq-cpp-library-3.9.5.lib` 文件名。 6. 拷贝文件:将 `activemq-cpp-library-3.9.5.dll` 文件拷贝到你的项目输出目录(例如,调试或发布目录)中,以便在运行时可以找到该 DLL 文件。 7. 在代码中使用:在你的代码中包含 ActiveMQ-CPP 的头文件,并使用其中的功能。确保你的代码正确链接并调用了 ActiveMQ-CPP 的函数。 完成上述步骤后,你的项目应该能够使用 ActiveMQ-CPP 文件。请注意,这只是一个简单的指导,具体步骤可能会因你的项目配置和需求而有所不同。建议参考 ActiveMQ-CPP 的官方文档或示例代码,以获取更详细的集成指南。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值