我正在尝试使用C++编写的一些功能来与位于Linux机器上的Apache ActiveMQ(本机使用JMS)进行通信.为了建立这种连接,我试图在我的Windows 7机器(开发机器)上设置Apache ActiveMQ-CPP,但我目前面临一些重大问题.
据我了解ActiveMQ的-CPP具有依赖于Apache的便携式运行/ APR,如前所述这里.我的问题是,我甚至无法构建APR,因此无法开始使用ActiveMQ-CPP.我已经按照本指南的说法,在并行目录中设置,将版本名称重命名为标准名称,并将启动项目更改为libaprutil(使用动态库),但没有任何运气.在构建APR解决方案时,27个项目中只有13个成功.我也尝试使用静态aprutil项目构建解决方案作为启动项目,但没有任何改进.
解决方案是确保为Visual Studio 6提供更广泛的兼容性,因此我怀疑使用Visual Studio 2010来解决我的问题.即使升级项目应该是可能的(如APR文档所述),在使用升级助手并尝试构建整个解决方案之后,我有几个(我认为是)缺少项目中的依赖项,请参阅第1个screendump.许多错误与文件iconv_module.obj(error LNK2019: unresolved external symbol xxx referenced in function _iconv_getpath C:\work\apr-iconv\iconv_module.obj)有关,如下面的工具提示所示C:\work\apr-iconv.该文件实际上位于不同的子文件夹中,具体取决于构建格式(我选择了"Release"和"Win32"),但我不确定这是否实际上是一个问题.
我应该提一下,我对C++完全不熟悉并且对C的经验非常有限,所以也许只是手动链接我不理解的依赖...如果打开所提到的文件并查看所述的函数然而,错误消息,代码显然也是错误的,所以也许它不是依赖关系,请看两个screendump.
关于可能的解决方案我被建议尝试手动一次构建每个项目,而不是一次完成整个解决方案,因此首先构建不依赖于任何内容的库,依此类推.然而,这也没有成功.
也应该可以使用命令行来构建项目,这对某些人来说就是技巧(链接).在新版本的Visual Studio中,"msdev"似乎被"devenv"所取代,但是考虑到这一点,构建仍然会在使用查找和替换之后抱怨"找不到msdev"......也许不是最好的解决方法,对吧?
在搜索有类似问题的帖子时,我肯定并不孤单,但不幸的是,没有一个建议的解决方案能为我做到这一点.有些我看着帖子是:编译Apache APR在Windows和ActiveMQ的-CPP和Visual Studio 2003.
您是否有任何使用较新版本的Visual Studio或Windows命令行构建APR的经验?或者更重要的是,让ActiveMQ-CPP在Windows上运行?
截图:
