Install ACE in Linux

來源:互聯網
上載者:User
作者:餘濤(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 , "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)的大力協助 。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.