强烈建议先看官方文档 此文章只做为辅助性文章
http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/ACE/ACE-INSTALL.html#unix
本文只记录步骤,不作多余说明。
步骤一:准备相关文件
准备好openssl安装文件
准备ACE安装文件
http://download.dre.vanderbilt.edu/文件获取我基本上是通过google进入官网下载最新的稳定版本。
步骤二:准备libssl.a , libcrypto.a并安装openssl
其实只要下载好openssl就可在其安装包内找到两个.a文件,makeace时直接链接进去即可
cp openssl-1.0.0e.tar.gz /tmptar zxvf openssl-1.0.0e.tar.gz
cd openssl-1.0.0e
./Configure linux-generic64 --prefix=$(pwd)\SSSSL
vi Makefile
make
make install
cd $(pwd)\SSSSL
cd lib
cp libssl.a /usr/lib/
cp libcrypto.a /usr/lib/
完成libssl.a , libcrypto.a的准备;
下面开始安装openssl:
cd /tmp
cd openssl-1.0.0e
./Configure
vi Makefile
make
make install
安装完毕。
步骤二点五: platform_macros.GNU。
在实际操作中也可以直接创建一个软链接:
cd $(ACE_ROOT)/include/makeinclude/
ln -s platform_linux.GNU platform_macros.GNU
mkdir /code
cp ACE+TAO+CIAO-6.0.0.tar.bz2
tar jxvf ACE+TAO+CIAO-6.0.0.tar.bz2
cd ACE_wrappers
参照ACE官网的安装说明,配置环境变量并添加相应文件:
vi /etc/profile
在尾部添加如下内容:
ACE_ROOT=/code/ACE_wrappers;
export ACE_ROOT
LD_LIBRARY_PATH=/code/ACE_wrappers/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
保存并执行
source /etc/profile
添加config.h文件:
vi ace/config.h
添加
#include "ace/config-linux.h"
保存并退出
添加platform_macros.GNU文件
vim $ACE_ROOT/include/makeinclude/platform_macros.GNU
添加
include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
保存并退出
下面开始安装:
mkdir build
cd build
../configure
修改Makefile解决找不到libssl.a , libcrypto.a的问题
vi /code/ACE_wrappers/build/examples/IPC_SAP/SSL_SAP/Makefile
vi /code/ACE_wrappers/build/tests/SSL/Makefile
搜索-lrt -ldl
找到libcrypto.a 等两个文件的路径,改写上述makefile
rpm -ql openssl
改为-lrt -ldl /usr/lib/libssl.a /usr/lib/libcrypto.a
注意:ssl必须在 crypto之前
The solution is simple, for some reason, when linking the library, -lssl must be in front of -lcrypto.
编译:make
安装
make install
步骤四:验证ACE安装
vi test.cpp
#include "ace/Log_Msg.h"
int ACE_TMAIN(int, ACE_TCHAR *[]) {
ACE_DEBUG((LM_DEBUG, ACE_TEXT("Hello, ACE !\n")));
return 0;
}
编译:
g++ -o test test.cpp -lACE
木有出错,但执行时却出现如下提示:
./test
error while loading shared libraries: libACE-6.0.0.so: cannot open shared object file: No such file or directory
处理如下:
vi /etc/ld.so.conf.d/ace.conf
添加
/usr/lib
保存并执行
$ sudo ldconfig /usr/local/lib