歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux AS4 安裝ACE記錄

Linux AS4 安裝ACE記錄

日期:2017/2/28 16:02:45   编辑:Linux教程
本文參照網絡文章,同時結合自己的實踐寫的

1、獲取安裝包
到ACE的官方網站http://www.cs.wustl.edu/~schmidt/ACE.html或者http://riverace.com/index.htm下載最新版的ACE,我下的是ACE-5.6.tar.gz;

菜鳥們不要下錯了,*.tar.gz是類Unix平台的版本,*.zip是windows平台的版本

2、查看autoconf版本
#autoconf -V
查看你的autoconf程序的版本 2.57g,就需要升級了

3、新建ace用戶
#useradd ace
#su - ace
並將源代碼ACE-5.6.tar.gz拷貝到ace的默認目錄,我的ace默認目錄在/home/ace

4、源代碼解壓
$cd
$tar -zxvf ACE-5.6.tar.gz
解壓後自動生成目錄ACE_wrappers

5、ACE_wrappers目錄新建子目錄
$mkdir /home/ace/ACE_wrappers/objdir
$cd /home/ace/ACE_wrappers/objdir

6、執行configure腳本
$../configure
注意此時是在/home/ace/ACE_wrappers/objdir目錄
../configure 的意思是執行父目錄也就是/home/ace/ACE_wrappers目錄中的configure

7、編譯
linux AS4 編譯ACE會碰到編譯過程中沒有反應的情況,即編譯 RB_Tree* 文件時不會報錯,但是一直停在那裡;開始不知道這個情況,再加上ACE很大,編譯很耗時,弄了一個下午發現每次都停在 RB_Tree的編譯上,才定位到問題;後來好不容易在網上查到了相關的問題解決辦法,這個時候已經是晚上了;

configure完了之後,make
$make
在make過程中,帶RB_Tree 的文件可能會編譯很久都沒反應,此時應該停掉make(用ctrl+c),然後到相應目錄,將makefile中的帶RB_Tree的文件名刪除,然後繼續make:

ctrl+C ...
$vi /home/ace/ACE_wrappers/objdir/examples/APG/Containers/Makefile
刪除“noinst_PROGRAMS =” 後面帶RB_Tree的 文件名(變量名)
$vi /home/ace/ACE_wrappers/objdir/tests/Makefile
刪除“noinst_PROGRAMS =” 後面帶RB_Tree的 文件名(變量名)
$vi /home/ace/ACE_wrappers/objdir/Kokyu/tests/DSRT_MIF/Makefile
刪除“noinst_PROGRAMS =” 後面帶MIF的 文件名(變量名)

然後繼續make
$make

整個ACE的編譯,應該要耗費幾個小時的時間,我是在虛擬機上編譯的,時間更慢

8、安裝
$su -
root's password
#make install
安裝目的是把編譯生成的ACE的庫文件、頭文件和手冊頁等安裝到/usr/local的相應目錄中去

9、設置ace用戶的環境變量
#su - ace
$vi .bashrc
ACE_ROOT=/home/ace/ACE_wrappers
export ACE_ROOT
LD_LIBRARY_PATH=$ACE_ROOT/ace:$ACE_ROOT/lib:/usr/local/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

編輯完了之後,ace用戶需要重新登陸才能生效,然後用 env命令,確認以上變量已經生效

10、鏈接文件
$cd $ACE_ROOT/ace
$ln -s config-linux.h config.h

$cd $ACE_ROOT/include/makeinclude
$ln -s platform_linux.GNU platform_macros.GNU

11、系統安裝完成

12、驗證ACE能否使用
注意,在ACE5.6版本中,《C++網絡編程,卷一》的可執行程序編譯後放在了目錄$ACE_ROOT/objdir/examples/C++NPv1,但是源代碼卻是放在$ACE_ROOT/examples/C++NPv1


$cd $ACE_ROOT/objdir/examples/C++NPv1
$make
ACE源碼中附帶有《C++網絡編程,卷一》的例子,執行一個服務器程序(隨便哪一個都行)和一個客戶端程序(Logging_Client),如果程序運行正確,說明前面的安裝和配置成功,下面你就可以開始你的ACE學習之旅了

$./iterative_logging_server 9090
$./logging_client 9090
Copyright © Linux教程網 All Rights Reserved