1. 程式人生 > >ACE在linux下的安裝和實例運行詳細步驟

ACE在linux下的安裝和實例運行詳細步驟

關閉 urn fine 配置環境 you pat 下載地址 程序 g++

摘自:https://blog.csdn.net/hou512504317/article/details/70224691

ace庫的編譯與試用

一、下載安裝包
下載地址:http://download.dre.vanderbilt.edu/
由於我只需要使用ACE,因此我只下載了ACE.tar.gz。ps:我得安裝環境為sentos 7
二、安裝前的配置
首先把文件解壓,我解壓在了/Software文件夾下,解壓後會出現一個名字為ACE_wrappers的文件夾。這樣所有ACE的源文件都在/Software/ACE_wrappers裏面
配置環境變量:
vi ~/.bashrc

ACE_ROOT=~/Software/ACE_wrappers
export ACE_ROOT
LD_LIBARY_PATH=$ACE_ROOT/ace:$LD_LIBARY_PATH
export LD_LIBARY_PATH

source ~/.bashrc //生效環境變量

三、開始安裝ACE
cd /Software/ACE_wrappers
vi ace/config.h
增加如下信息:

#define ACE_HAS_EVENT_POLL
#define ACE_HAS_PTHREAD_SCHEDPARAM
#define ACE_HAS_PTHREADS_STD

#include "ace/config-linux.h"

四、創建 platform_macros.GNU
~/Software/ACE_wrappers/include/makeinclude/platform_macros.GNU 寫入
include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU

static_libs=1

五.可以在platform_macros.GNU裏寫入 INSTALL_PREFIX=/home/yourname/ace_install_dir/ 來制定輸出目錄.。
如果不指定 則默認生成至 $(ACE_ROOT)/lib目錄下。

六. 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

七.編譯
在$ACE_ROOT目錄下 make。大概十多分鐘編譯完成。

八.創建軟連接

cd  /etc/ld.so.conf.d/
vi ace.conf
/home/hou/Software/ACE_wrappers/lib
sudo ldconfig

保存關閉,執行ldconfig 更新鏈接庫。

九.執行測試程序

#include <ace/Log_Msg.h>
#include <ace/OS_main.h>
using namespace std;
int ACE_TMAIN(int argc, ACE_TCHAR *argv[])
{
ACE_DEBUG((LM_DEBUG, ACE_TEXT("Hello World!")));
return 0;
}       

執行下面命令進行編譯:

g++ -I$ACE_ROOT -lACE -L$ACE_ROOT/lib -o acetest acetest.cpp

編譯成功,運行:
./acetest
打印出:Hello World!

註意:g++ 命令後面到參數

-I$ACE_ROOT                // 指定包含到頭文件路徑,此處是大寫的 I ,include 的第一個字母到大寫。
-lACE                              // 指定包含到庫名稱,此處是小寫的 l,library 的第一個字母到小寫。
-L$ACE_ROOT/lib          // 指定依賴庫到路徑,此處是大寫到L,library 的第一個字母到大寫。

ACE在linux下的安裝和實例運行詳細步驟