天天看點

Linux下的ACE安裝全攻略(轉載)

作者:混沌 八月 24th, 2008

原文出處:http://www.huihoo.com/forum/viewthread.php?tid=5654

作者:餘濤(yut616_at_sohu.com)

由于安裝說明檔案“ACE- INSTALL.html”中提及的linux安裝過程極少,其主要針對Unix、Windows,手動配置較多,加上本人安裝後感覺“ACE- INSTALL.html”檔案有些影響視聽,因為主要的動作都可以由ACE包中的安裝腳本ACE-install.sh自動完成,我們主要的工作就可以直接對這個安裝腳本來處理即可。

1、安裝環境:

linux 8.0

ACE安裝包ACE+TAO+CIAO.tar.gz,

http://deuce.doc.wustl.edu/Download.html

http://download.dre.vanderbilt.edu/, "Latest Beta Kit",beta版既是ACE的最新版。

2、安裝過程:

第一步

先設定ACE_ROOT環境,指令:

“vi /etc/profile”

在其中加入4行

ACE_ROOT=/opt/ACE

export ACE_ROOT

LD_LIBRARY_PATH=$ACE_ROOT/ace:$LD_LIBRARY_PATH

export LD_LIBRARY_PATH

我是加在“export PATH USER….”後的。完成後将/etc/profile執行一次,指令:

“chmod 555 /etc/profile”

“/etc/profile”

這樣我們的ACE_ROOT就設定好了,可以用如下指令檢視ACE_ROOT是否設定好了:

“echo $ACE_ROOT”

這個時候最好reboot啟動一次linux。

第二步

不要自己手工将ACE+TAO+CIAO.tar.gz包完全解開,特别強調不要完全解開,後面可以看到安裝腳本會給我們解開它的;如果你手工解開全部,安裝腳本将會将你的解壓縮目錄删除的!我們要做的事就隻是将ACE+TAO+CIAO.tar.gz包中的ACE-install.sh安裝腳本單獨解出來,并對其修改。我們隻要這一個檔案就可以。

用 mkdir建目錄,如/home/my/ACE,然後将你的 ACE+TAO+CIAO.tar.gz放在此目錄下(用cp指令拷貝或mv指令移動到此目錄)。注意這個目錄将是你的一個存放 ACE+TAO+CIAO.tar.gz的目錄,安裝腳本會來這個目錄找這個檔案的,這個目錄和ACE_ROOT是不一樣的,且ACE- install.sh也提示不要将這兩個目錄設定成同一個目錄。ACE_ROOT将是我們的安裝目标目錄。

從ACE+TAO+CIAO.tar.gz解壓出單個檔案ACE-install.sh:

“tar –zxvf ACE+TAO+CIAO.tar.gz ACE_wrappers/ACE-install.sh”

解好後,會出來一個新的子目錄“ACE_wrappers”。此時可以先将ACE-install.sh移到外面的目錄來:

“mv /ACE_wrappers/ACE-install.sh .”

“.”代表目前目錄。當然ACE-install.sh在什麼路徑下是沒什麼影響的,因為我們要對ACE-install.sh的内容進行修改的,裡面有很多路徑要修改。

好,現在在/home/my/ACE就有了ACE-install.sh,我們現在用vi對其進行修改,修改前自己可以先備份一個。指令:

“cp ACE-install.sh ACE-install.sh.bak”

“vi ACE-install.sh”

我們可以看到預設的,這個檔案是用來在UNIX下做安裝的。是以我們要将其中的有關UNIX的部分換成linux即可。

先找到“MY_ACEDIR=${HOME}/aceconfig”,将其改成“MY_ACEDIR=/home/my/ACE”,就是改成我們自己建的、放有ACE+TAO+CIAO.tar.gz檔案的目錄,之後去掉前面的注釋“#”号。

接着在下面一點,找到“MY_ACE_CONFIG=config-sunos5.4-sunc++-4.x.h”,将其修改成“MY_ACE_CONFIG=config-linux.h”,即改成linux下的配置檔案。

繼續改,找到“MY_ACE_GNU_MACROS=platform_sunos5_sunc++.GNU”,将其改成“MY_ACE_GNU_MACROS=platform_linux.GNU”。這個是各種作業系統平台下的GNU宏檔案設定。

好了,檔案修改完畢,儲存退出“:wq”。

第三步

我們的重點到了,現在就可以安裝ACE了。

此時應該是在/home/my/ACE目錄下,我們執行:

./ACE-install.sh

此後将是較長時間的解包、編譯等待時間。這個過程将不會出現任何錯誤,因為安裝腳本将為我們做很多事情,如:

生成config.h,生成platform_macros.GNU。

我們不需要按ACE-install.html中說的手工改東西:

不用做連接配接“ln -s config-sunos5-sunc++-4.x.h config.h”,安裝腳本會給我們做好;(題外話:Windows中沒有檔案連接配接這一說,是以要自己生成一個config.h檔案,再在它的裡面加一句話“#include "ace/config-win32.h"”。)

不用做連接配接“ln -s platform_sunos5_sunc++.GNU platform_macros.GNU”。

如果編譯中出現錯誤,如“../apps/gperf”等,請編輯$ACE_ROOT/apps下的Makefile,将其中的有關“gperf”的部分注釋掉,這個東西隻是一個例子,可以不去編譯它。

強調一下,用ACE-install.sh來安裝,會編譯ACE、tests、apps等。最後會生成libACE.so及tests、apps下也會出來很多經過編譯的檔案。

當然如果你隻是下載下傳了ACE.tar.gz這樣的單個包來安裝,你可以手工改檔案,再make,因為隻編譯ACE,工作就少了很多,手工做還可以接受。

第四步

我們來寫個簡單的例子看看ACE是不是能工作了。我們可以拿馬維達(www.flyingdonkey.com)的“中篇:ACE程式員教程.pdf”中的生産者與消費者模式的例子來試試。這個程式是基于ACE_TASK的,多線程跑得很舒服 (代碼在第5章中,大約是57頁)。

我們想要編譯這個hello.cpp例子,先要從一個ACE的例子目錄中拷貝一份Makefile過來,這樣編譯友善。如我從$ACE_ROOT/examples/RMCast/Send_File下拷貝了它的Makefile。修改其中輸出檔案名“BIN = hello”,并修改“.obj/Sender.o .obj/Sender.so .shobj/Sender.o .shobj/Sender.so: Sender.cpp ”中後面的“Sender.cpp”成“hello.cpp”。後面的“Receiver.cpp”部分就删除掉。

好,我們可以編譯一個我們自己的ACE程式了,make即可。應該能通過,生成執行檔案hello,大小大約為250Kb。運作之,“./hello”,當生産者與消費者互相傳遞消息,運作資訊不斷輸出時,看着還是蠻帶勁的,呵呵。

大功告成,安裝結束,謝謝閱讀。

歡迎轉載,但請寫明出處。在此嚴重感謝superkun(superkun_at_sina.com)的大力幫助

繼續閱讀