kagula
2012-3-2
环境
[1]Win7SP1
[2]apr-1.4.6-win32-src.zip
[3]apr-util-1.4.1-win32-src.zip
[4]apr-iconv-1.2.1-win32-src-r2.zip
[5]activemq-cpp-library-3.4.1-src.zip
[6]apache-activemq-5.4.3-bin.zip
[7]VS2010SP1
打开apache-activemq包里自带的activemq-cpp-example的项目虽然编译成功
但是一运行提示找不到libparutil-1.dll。
进入c:\work\aprutil编译aprutil,静态库能生成,但是动态库无法生成。
察看APR官方文档,我们知道如果在LINK的依赖项里设置LIBXXX.lib,则程序运
行的时候,会到当前运行目录里寻找相应的XXX.dll文件。
动态不成,我们用静态,把LINK依赖项的libapr-1.lib、libaprutil-1.lib
分别改为apr-1.lib和aprutil-1.lib,但是编译会有很多符号(函数)找不到实现。
我们替这些符号找到实现所在的LIB文件,然后,补上去。
完成后的,"[Linker]->[Input]->[Additional Dependencies]"项内容如下
“ws2_32.lib apr-1.lib aprutil-1.lib apriconv-1.lib Mswsock.lib
Rpcrt4.lib”共六个库文件。
现在activemq-cpp-example程序编译成功。一运行停留在命令行下,这时启动
ActiveMQ,程序会正常往下运行并结束。问题解决。
但是如果你在C++端发送中文信息给Java端,Java端会报UTF-8解析出错,这时
你只需要传送中文前把GBK转成UTF-8再发给Java端就可以了。