在Centos 下安装ACE-6.2.7

1.从 http://www.cs.wustl.edu/~schmidt/ACE.html 下载ACE-6.2.7.tar.gz,解压到 ~/local 目录下

tar -zxf ACE-6.2.7.tar.gz

得到~/local/ACE_wrappers

2. 设置环境变量

vim ~/.bashrc

export ACE_ROOT=/home/yourname/ACE_wrappers

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ACE_ROOT/ace

3. 创建文件 $ACE_ROOT/ace/config.h,写入如下内容

#include "ace/config-linux.h"

4.创建 platform_macros.GNU

方法一:创建文件 $ACE_ROOT/include/makeinclude/platform_macros.GNU 写入

include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
INSTALL_PREFIX=/usr/local/ace/

5. 可以在 platform_macros.GNU 里写入 INSTALL_PREFIX=/home/yourname/ace_install_dir/ 来制定输出目录

6.## 64位 linux 需要作个小修改:

vim $ACE_ROOT/include/makeinclude/platform_linux.GNU

找到如下几行

ifeq ($(buildbits),32)
FLAGS_C_CC += -m32
LDFLAGS += -m32
endif
ifeq ($(buildbits),64)
FLAGS_C_CC += -m64
LDFLAGS += -m64
endif

修改为

ifeq ($(buildbits),32)
FLAGS_C_CC += -m32
LDFLAGS += -m32
endif
ifeq ($(buildbits),64)
FLAGS_C_CC += -m64
FLAGS_C_CC += -fPIC
LDFLAGS += -m64
endif

7.make && make install

8. vi demo.cpp

#include <ace/Log_Msg.h>
#include <ace/OS_main.h>
using namespace std;

int main(int argc, ACE_TCHAR *argv[])
{
    ACE_DEBUG((LM_DEBUG, ACE_TEXT("Hello World!\n")));
    return 0;
}

g++ -I/usr/local/ace/include -L/usr/local/ace/lib  demo.cpp  -lACE -lrt -lpthread

./a.out
运行: ./a.out    

此时会提示如下错误:

./a.out: error while loading shared libraries: libACE-6.0.3.so: cannot open shared object file: No such file or directory

这是为什么?在a.out运行的时候,需要链接一些动态库,但是当前的环境下没有ace库路径,所以导致该问题,

解决办法: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/library/ace/lib

你可能感兴趣的:(centos)