系統:CentOS 6.5 64位
ACE版本:6.1.0
假定壓縮文件目錄爲:/usr/local/
步驟1:
解壓下載好的ACE-6.1.0.tar.gz
# tar zxvf ACE-6.1.0.tar.gz
出現一個名爲:ACE_wrappers的文件夾
步驟2:定義環境變量:
修改/etc/profile 或者 /etc/bashrc
# vi /etc/profile
加入以下兩行:
ACE_ROOT=/usr/local/ACE_wrappers;export ACE_ROOT
LD_LIBRARY_PATH=$ACE_ROOT/ace;export LD_LIBRARY_PATH
#這個路徑是最後鏈接的路徑,如果編譯輸出不修改路徑,則爲上面的路徑,如果定製路徑,則要修改爲定製的路徑
步驟3:修改ACE_wrappers/include/makeinclude下面的platform_linux.GNU,
vi 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
這裏的修改是爲了解決64位系統編譯的問題,如果系統爲32位,不修改應該也可以
步驟4:在ACE_wrappers/include/makeinclude下面創建文件platform_macros.GNU,
vi platform_macros.GNU
添加如下代碼
include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU //不是#include
以下兩項是可選的添加的:
1.INSTALL_PREFIX=/usr/local/ace_install
該項是制定編譯文件輸出的,這裏如果要添加該項,則需要修改前面的環境變量:LD_LIBRARY_PATH=$ACE_ROOT/ace;export LD_LIBRARY_PATH ,如果添加,則修改爲
LD_LIBRARY_PATH=/usr/local/ace_install/ace;export
LD_LIBRARY_PATH
2.static_libs=1
該項定義了在生成編譯文件的時候,同時生成靜態庫,不添加則不生成靜態庫
步驟五:測試例子
#include"ace/Log_Msg.h"
#include"ace/OS_main.h"
using namespace std;
int ACE_TMAIN(int arg,ACE_TCHAR *argv[])
{
ACE_DEBUG((LM_DEBUG,ACE_TEXT("Hello ACE")));
return 0;
}
編譯並連接:
gcc -o hello hello.cpp -I /usr/local/ACE_wrappers/ -L /usr/local/ACE_wrappers/ace/ -lACE -lrt -lpthread
基本沒什麼問題的情況下就可以看書學習ACE了…………