栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > C/C++/C#

windows10 vs2015编译64位activemq

C/C++/C# 更新时间:发布时间: 百科书网 趣学号

所需要的文件列表如下(目前都是最新版本):

  1. activemq-cpp-library-3.9.5.src.zip
  2. apr-1.7.0-win32-src.zip (Apache Portable Runtime 1.7.0 简称:APR)
  3. apr-util-1.6.1-win32-src.zip(APR-util 1.6.1)
  4. apr-iconv-1.2.2-win32-src.zip(APR iconv 1.2.2)
  5. Expat-2.1.0


首先说一下编译的依赖关系:
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 ,右键生成

在aprDebug目录下会生成两个文件libapr-1.lib和libapr-1.dll
编译apr-iconv,添加依赖项libapr-1.lib以及相应的头文件路径和依赖项路径,在apr-iconvDebug目录下会生成两个文件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:acmq5aprinclude

F:acmq5apr-iconvinclude

F:acmq5apr-utilinclude

F:acmq5apr-utilx64Debuglibaprutil-1.lib
F:acmq5aprx64Debuglibapr-1.lib
F:acmq5aprx64Debuglibaprapp-1.lib
F:acmq5apr-iconvx64Debuglibapriconv-1.lib

输出文件名与目标文件名不一致,把输出文件名改成libactivemq-cppd.lib
编译成功,在目录{your_activemq-cpp-library_location}activemq-cpp-library-3.9.3vs2010-buildWin32Debug下生成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:acmq5activemq-cpp-library-3.9.5vs2010-buildx64Debugactivemq-cpp-example.exe,得到结果如下,(直接在编译器运行出错,提示32位)

 

另外,单独编译consumer和producer项目时,添加头文件和库文件目录,以及附加的依赖项(各lib文件),编译过程中可能会出现“无法解析的外部符号问题”

缺少ws2_32.lib文件,添加该依赖项,这是由于代码中使用到了网络相关的API,该文件用于提供API接口。

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/1033701.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号