ActiveMQ-CPP库
-------------------------------------------------- ------------------------
ActiveMQ-CPP库是一个可以使用多种协议来
跟MOM(如ActiveMQ)交互的消息库。
1需知
-------------------------------------------------- ------------------------
在一个Unix类型的系统上搭建并安装ActiveMQ-CPP,需要了解下面的部分,详细阅读并遵循下面的信息。
在Windows中,你不需要AUTO TOOLS,因为此库已经附带了Visual Studio工具。
工具推荐版本
-------------------------------
autoconf >= 2.61
automake >= 1.10
libtool >= 1.5.24
APR >= 1.3*
CPPUnit >= 1.10.2* ( 推荐1.12.1 )
OpenSSL >= 0.9.8m* ( 建议1.0.0版或更高版本,可选项)
* 要求同样安装开发包.
1.1 CppUnit(使用)
-------------------------------------------------- ------------------------
该软件包包含一套完整的CppUnit的测试。为了让您
构建一个运行测试,你需要下载和安装CppUnit套件。
见:http://cppunit.sourceforge.net/cppunit-wiki
在Fedora上,键入以下内容:
sudo yum install cppunit cppunit-devel
在Debian/ Ubuntu上,键入以下内容:
sudo apt-get install libcppunit-dev
在建立测试之前,请确保CppUnit库的安装路径
并保证在你的当前shell里被显式包含。
Windows用户需要使用CppUnit MSVC项目文件来构建CppUnit库。
关于构建过程的讨论可以在CPPUnit维基里找到:
http://cppunit.sourceforge.net/cppunit-wiki/BuildingCppUnit1
里面涵盖了MSVC以及许多其他的平台和工具套件。
附带的Visual Studio配置好之后还要配置相应的
平台SDK,CPPUnit,APR库和头文件。
1.2 APR
-------------------------------------------------- -----------------------
安装需要用到APR库。这个库可以从APR网站获得。
网址:http://apr.apache.org/
查看如何为你的平台建立APR库的相关文档。
在许多Unix系统中,APR库可以通过安装系统程序包来安装。
APR库版本请使用V1.3及更高版本来进行测试,
旧的0.9版已经被停止使用。
许多Unix的类型OS'es目前装载了APR1.2.x版本和
APR-Util1.2.x版本,这意味着你将需要从Apache来下载和安装APR。
-------------------------------------------------- ----------------------------------------
| MacOS X系统注:
|
|如果您已安装APR via MacPorts
|
|(http://www.macports.org/),并正在安装ActiveMQ-CPP,
|
|你需要通过配置脚本来指定APR库的安装位置
|
|这是很容易做到的,只需要一个额外的编译选项。
|
|示例如下所示:
|
|
|
|$./configure\
|
|--with-apr=/opt/local/var/macports/software/apr/1.3.3_0/opt/local/
|
|
|
|请注意,这是脚本配置的单个命令,
|
|两行之间通过一个换行符连接
|
|
|
|如果你手动编译并安装了APR库到
|
|自定义位置,那么你将需要将上面的位置
|
|换成你自己定义的位置。
|
-------------------------------------------------- ----------------------------------------
1.3 OpenSSL
-------------------------------------------------- -----------------------------------------
如果你想使用SSL传输,你需要将OpenSSL和
相关包含文件安装在系统上。我们建议您使用1.0.0版本
或更高版本来确保最佳性能和安全性,但0.9.8版本也能正常工作。
autoconf脚本自动搜索并提供支持。
您可以通过配置脚本的--disable-SSL选项来禁用OpenSSL的检查
也可以用--with-OpenSSL选项来自定义OpenSSL安装包的位置。
详情请参考配置脚本--help选项里的信息。
在Windows中,你需要获得OpenSSL的二进制包,并在放置库
系统路径或System32目录中。在Visual Studio项目中,你必须
添加HAVE_OPENSSL标志预处理指令,并添加所包含库的路径
这样编译器和链接器才可以找到他们。
1.4 GNU编译系统(建立在Unix / Linux/ OS X)
-------------------------------------------------- ------------------------
要生成用于创建Makefiles的./configure脚本,你需要
安装以下软件:
工具推荐版本
-------------------------------
autoconf >= 2.61
automake >= 1.10
libtool >= 1.5.24
在Debian/ Ubuntu,多个版本autoconf和automake的包被装在一个
单独的包中可供选择。如果你有多个版本的autoconf或automake
安装在系统上,您可能需要using /usr/sbin/update-alternatives配置版本号
-------------------------------------------------- ---------------------
| Ubuntu注意:
|
|
|
|安装需要用到 Build Essentials Package:
|
|
|
|sudo apt-get install build-essential
|
-------------------------------------------------- ---------------------
2 Unix / Linux/ OS X上的安装
-------------------------------------------------- ------------------------
-------------------------------------------------- ---------------------
-------------------------------
|Solaris 10注:CppUnit在配置文件libstdc++.la包含正确的数据才能安装
|
|详情参考:
|
| http://forum.sun.com/jive/thread.jspa?threadID=73150
|
|你也必须通过 --enable-shared=no for Solaris GCC安装
|
|对于使用Sun编译器的Solaris版本必须设置env值
|
|使CC和CXX分别对应上cc和CC命令。
|
-------------------------------------------------- ----------------------------------------------------
配置脚本会根据已经安装到你的系统的版本来创建。
要使用默认配置只需要运行:
./configure
有关如何自定义生成更多的配置,运行:
./configure--help
配置脚本成功运行之后,你就可以安装了。
运行:
make
这将建立所有的核心的ActiveMQ CPP源代码。建立和
安装代码到系统目录下,运行:
make install
必须使用超级用户权限才能够安装所述文件。
** 对于ActiveMQ-CPP开发注意事项**
如果您想对configure.ac做更改或者更改包含M4的文件,
那么你需要重新配置脚本。
./autogen.sh
任何时候更改configure.ac或Makefile.am文件都需要执行这一步。
-------------------------------------------------- ---------------------------------
| MacOS X系统注:
|
|确保设置LIBTOOLIZE环境变量指向
|
| /usr/bin/glibtoolize
|
|下面是一个例子:
|
|
|
| $ export LIBTOOLIZE=/usr/bin/glibtoolize
|
|
|
|如果你不使用这个环境变量,你会遇到一个
|
|错误说明:
|
|
|
| Can't exec "libtoolize": No such file or directory at
|
| /opt/local/share/autoconf/Autom4te/FileUtils.pm line 290...
|
-------------------------------------------------- ----------------------------------
3 Doxygen
-------------------------------------------------- ------------------------
要生成Doxygen文档的项目,只需要运行:
make doxygen-run
4运行测试
-------------------------------------------------- ------------------------
4.1单元测试
-------------------------------------------------- ------------------------
为了构建和运行单元测试套件,运行:
make check
这将确认该库在目标平台上运行正常。此外,它会产生集成测试的二进制文件。
4.2集成测试
-------------------------------------------------- ------------------------
该库还包含了一组测试,来针对对AMQ broker
通过这种方法来确认与broker对应的ActiveMQ CPP。
没有broker,执行上述测试都会导致失败。
The tests currently hard-code the broker url to be
tcp://localhost:61613 for Stomp and tcp://localhost:61616 for Openwire.
集成测试是通过“make check”来build。运行它们,首先要
启动代理,然后
cd src/test-integration
./activemq-test-integration
这将需要相当一段时间才能完成,请耐心等待。
执行结束之后,建议重新启动broker。
5 Example
-------------------------------------------------- ------------------------
在/src/examples下有相应的应用程序例子
这些例子默认的是在Unix下通过“make”命令编译的。
只有一个样本被Visual Studio支持时,其他的可以很容易地通过检查设置来提供支持。
6,Windows用户的注意事项
-------------------------------------------------- ------------------------
我们不支持使用GNU编译器的Windows系统,使用Cygwin包
或MinGW的平台,在这些平台上会存在sockets和threading使用错误的问题。
然而我们支持使用MSVC编译器的Windows系统,我们提供了一组支持
Visual Studio 2010的项目文件,新版本可以升级到这些文件的最新格式。
你需要进行少量的设置,以确保在MSVC下编译成功。
*如果要将你的应用程序连接成ActiveMQ-CPP版本的DLL库
您必须将您的app连接到与DLL相关联的运行版本,
否则当你删除在ActiveMQ-CPP DLL堆创建的对象时,
会导致你的程序发生heap corruption(堆错误?)。
*您需要下载和安装平台SDK,如果你还没有安装的话。
在你打算用来安装库和创建可执行程序的机器上,
你还需要安装与Visual Studio库版本相对应的MS Redistributable。
6.1项目设置(Project Settings)
在Visual Studio2010项目文件中附带的代码
通过一个预先定义好的目录结构和一组用于限定磁盘上的确切位置的环境变量
被配置为查找APR,OpenSSL和CppUnit项目的各种头文件和库文件。
每个相关的目录结构附带了一个环境变量前缀,
这组变量如下:
Library Recommended Version Windows Env Var
------------------------------------------------------------
APR
>= 1.3
${APR_DIST}
CPPUNIT >= 1.10.2 ${CPPUNIT_DIST}
OpenSSL >= 1.5.24 ${OPENSSL_DIST}
Platform SDK {varies} ${PLATFORM_SDK}
每个库的依赖关系结构展开如下:
${APR_DIST}\
win32\
include\
lib\
bin\
x64\
include\
lib\
bin\
${CPPUNIT_DIST}\
win32\
include\
lib\
x64\
include\
lib\
${OPENSSL_DIST}\
win32\
include\
lib\
bin\
exp\
x64\
include\
lib\
bin\
exp\
6.2获取和构建依赖库
之前,你可以将所需要的库安装到你的系统上来创建ActiveMQ-CPP库。
Windows中事情总不会如此轻松, 我们会提供一些帮助,确保每个人都能成功安装,
当然,你也可以查询Google或者通过邮件的方式来获取帮助。
6.2.1 APR库。
APR以开源的形式由Apache软件基金会提供。
您可以从源代码库中下载并安装最新版本:
http://apr.apache.org/
在写这篇文章时的最新版本是V1.4.8(被广泛推荐的版本),因为此版本支持Visual Studio 2010
由于APR是使用其提供的make文件命令行建立。安装时你要确保你的环境配置正确(x64或win32)。
您可以通过在Visual Studio中的快捷方式打开命令行.
打开开始菜单(例如,
Visual Studio 2010/ Visual Studio工具/ Visual Studio x64 win64 Command Prompt)
在适当的命令提示符下切换到APR源代码的目录中位于(例如:C:\ APR),
然后运行安装的库来产生期望的ARCH build。
对于一个32位的库,安装到一个合适的发行目录下运行:
nmake -f Makefile.win ARCH="win32 Release" PREFIX=C:\dist\APR\x64 buildall install clean
而对于64位的库,命令如下:
nmake -f Makefile.win ARCH="x64 Release" PREFIX=C:\dist\APR\x64 buildall install clean
6.2.2 CppUnit
要安装后续的Visual Studio版本,如2010+的CppUnit库,您需要从SVN位置下载
最新代码的CppUnit v1.12.1+。当前位置是:
https://svn.code.sf.net/p/cppunit/code/trunk/cppunit
一旦你签出的代码,你可以使用附带的Visual Studio2010项目文件
建立各种目标(调试,发布,调试DLL,DLL版本),并copy到你先前的安装目录,
只要确保你安装目录正确就可以了。
6.2.3 OpenSSL
OpenSSL的配置在Windows上比较困难。如果你选择在Windows上使用SSL,
你需要找到一个与你的Visual Studio 2010版本相对应的OpenSSL,
而且要与相应的ActiveMQ-CPP相匹配。
对应与Visual Studio2008版本的下载地址:
http://slproweb.com/products/Win32OpenSSL.html
在试图建立自己的OpenSSL,你应该检查,看看是否有更新的2010版本
可用。如果你发现你需要自己建立它您应该咨询谷歌找到有用的
详细说明如何开始在Windows上构建OpenSSL过程博客文章。。
有错误?犀利糊涂的翻译完了,仅供各位客官参考。。。