linux activemq-cpp编译

仅作为编译记录

http://blog.csdn.net/lgh1700/article/details/51055784

http://activemq.apache.org/cms/building.html

依赖库version

cppunit-1.14.0.tar.gz

apr-1.6.2.tar.gz

apr-util-1.6.0.tar.gz

apr-iconv-1.2.1.tar.gz

e2fsprogs-1.43.6.tar.gz

expat-2.1.0.tar.gz(maybe not need)

openssl-1.0.0a.tar.gz(openssl-1.1.0f.tar.gz compile not pass):http://www.linuxidc.com/Linux/2011-10/45738.htm

zlib-1.2.11.tar.gz

activemq-cpp-library-3.9.4-src.tar.gz

步骤

ActiveMQ CPP

ActiveMQ CPP是用C++语言访问ActiveMQ的客户端开发库,也称cms(cpp message service),安装cms开发库需要先安装一些基础库。

1、sudo apt-get install autoconf automake libtool

(1)cppunit

打开http://activemq.apache.org/cms/building.html页面,这里介绍了cms build时用到的依赖库。
cppunit下载页面:
https://sourceforge.net/projects/cppunit/files/cppunit/1.12.1/
这里选择1.12.1版本,获取到下载地址后,在linux下可以用wget命令直接下载,或者下载完成后传到linux系统中。

tar解压后,进入目录,编译三部曲,configure、make、make install(install需要root权限):
./configure –prefix=/usr/local/cppunit/
make
make install
执行完后在/usr/local/cppunit/目录下可以看到头文件和库文件。

(2)apr

apr的全称为Apache Portable Runtime(Apache可移植运行时),Apache旗下有很多开源软件。

apr介绍页面:
http://apr.apache.org/download.cgi
这里选择最新的APR 1.5.2版本,地址为:
http://mirrors.hust.edu.cn/apache//apr/apr-1.5.2.tar.gz

同上,解压进入目录,三部曲:
./configure –prefix=/usr/local/apr/
make
make install

(3)apr-util

这里选择最新的APR-util 1.5.4版本,下载地址为:
http://mirrors.hust.edu.cn/apache//apr/apr-util-1.5.4.tar.gz

解压编译:
./configure –prefix=/usr/local/aprutil –with-apr=/usr/local/apr/
make
make install

(4)apr-iconv

这里选择最新的APR iconv 1.2.1版本,地址为:
http://mirrors.hust.edu.cn/apache//apr/apr-iconv-1.2.1.tar.gz

解压编译:
./configure –prefix=/usr/local/apr-iconv/ –with-apr=/usr/local/apr/
make
make install

(5)openssl
ps:可以用系统自带的,则下面编译activemq时将目录替换为相应路径

这里选择openssl 1.0.0a版本,下载地址为:
http://www.openssl.org/source/openssl-1.0.0a.tar.gz

解压编译:
./config –prefix=/usr/local/openssl/
make
make install

若出现报错
cms.pod around line 457: Expected text after =item, not a number
在root权限下,执行rm -f /usr/bin/pod2man 然后重新make install

(6)ActiveMQ-CPP

这里选择最新的ActiveMQ-CPP 3.9.3版本,下载页面为:
http://activemq.apache.org/cms/activemq-cpp-393-release.html

解压编译:
./configure –prefix=/usr/local/ActiveMQ-CPP –with-apr=/usr/local/apr/ –with-apr-util=/usr/local/aprutil –with-cppunit=/usr/local/cppunit –with-openssl=/usr/local/openssl
make
make install

./configure –prefix=/usr/local/ActiveMQ-CPP –with-apr=/usr/local/apr/ –with-apr-util=/usr/local/aprutil/ –with-cppunit=/usr/local/cppunit –with-openssl=/usr/local/openssl
make
make install

若在make时报错,提示找不到ssl库
/usr/bin/ld: cannot find -lssl
进入到 /usr/local/openssl目录,将lib64目录复制一份,复制的新目录名为lib,命令:cp -r lib64 lib,这是由于make时使用的 /usr/local/openssl/lib路径导致。

二、编译安装 OpenSSL

2.1、准备工作

系统版本:Ubuntu-10.10-Server-I386
更新源:apt-get update
升级软件:apt-get upgrade
更新系统:apt-get dist-upgrade

2.2、查看OpenSSL版本

部分 Linux 系统已默认安装了 OpenSSL 0.9.8,特别是 VPS 一般都安装了。

1
openssl version -a
2.3、安装基础编译环境

1
apt-get install build-essential
2.3、编译安装 Zlib 库

wget http://zlib.net/zlib-1.2.5.tar.gz
tar -zxf zlib-1.2.5.tar.gz
cd zlib-1.2.5/
./configure –prefix=/usr/local
make && make install
2.4、卸载旧版本 OpenSSL

apt-get purge openssl
rm -rf /etc/ssl #删除配置文件
2.5、编译与安装 OpenSSL

prefix 是安装目录,openssldir 是配置文件目录,另外建议安装两次,shared 作用是生成动态连接库。

wget ftp://ftp.openssl.org/source/openssl-1.0.0c.tar.gz
tar -zxf openssl-1.0.0c.tar.gz
cd openssl-1.0.0c/
./config –prefix=/usr/local –openssldir=/usr/local/ssl
make && make install
./config shared –prefix=/usr/local –openssldir=/usr/local/ssl
make clean
make && make install

http://blog.csdn.net/chenxun_2010/article/details/52709277

编译举例

代码官网有例子
g++ producer.cpp -o send -I/usr/local/ActiveMQ-CPP/include/activemq-cpp-3.9.4 -I/usr/local/apr/include/apr-1 -L/usr/local/ActiveMQ-CPP/lib -lactivemq-cpp

g++ consumer.cpp -o consumer -I/usr/local/ActiveMQ-CPP/include/activemq-cpp-3.9.4 -I/usr/local/apr/include/apr-1 -L/usr/local/ActiveMQ-CPP/lib -lactivemq-cpp

export LD_LIBRARY_PATH=/usr/local/lib

export JAVA_HOME=/usr/share/jdk1.6.0_14
export PATH=JAVAHOME/bin: PATH
export CLASSPATH=.:JAVAHOME/lib/dt.jar: JAVA_HOME/lib/tools.jar

source /etc/profile

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章