Linux下編譯OpenDDS


Linux下編譯OpenDDS

OpenDDS同樣支持Linux family,本文使用的Linux環境為Ubuntu 12.04LTS,make版本GNU Make 3.81,Perl版本v5.14.2。

1 OpenDDS編譯前准備


下載ACE+TAO與OpenDDS。

ACE+TAO下載地址http://download.dre.vanderbilt.edu/

OpenDDS下載地址http://download.ociweb.com/OpenDDS/

注意下載時,不要選擇.zip版本,.zip版本是為Windows准備的,部分文件的Windows格式會導致編譯失敗。

2 編譯ACE+TAO與OpenDDS


a. 解壓文件

cp ACE+TAO-6.2.6.tar.gz /home/workspace
cp OpenDDS-3.5.tar.gz /home/workspace
tar -xvzf ACE+TAO-6.2.6.tar.gz
tar -xvzf OpenDDS-3.5.tar.gz

 

b. 設置相關環境變量

在當前用戶目錄下修改.bashrc文件設置全局環境變量,在/home/joeywang/.bashrc文件尾添加:

export ACE_ROOT=/home/workspace/opendds/ACE_wrappers
export TAO_ROOT=$ACE_ROOT/TAO
export DDS_ROOT=/home/workspace/opendds/DDS
export PATH=$ACE_ROOT/bin:$DDS_ROOT/bin:$PATH
export LD_LIBRARY_PATH=$ACE_ROOT/lib:$DDS_ROOT/lib:$LD_LIBRARY_PATH

 

c. 設置config.h

新建$ACE_ROOT/ace/config.h,文件內容為

#include “ace/config-linux.h”

d. 設置Platform_macros.GNU

新建$ACE_ROOT/include/makeinclude/platform_macros.GNU,文件內容為

include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU

f.編寫編譯腳本

編寫腳本按次序編譯ACE、TAO、OpenDDS,因為編譯的時間比較長,輸出的信息較多,可將std_out和std_err分別重定向到不同log文件以便編譯完成后查看。腳本內容如下:

(cd $ACE_ROOT; make clean && make) 1> make_ace.log 2>make_ace_err.log
(cd $TAO_ROOT; make clean && make) 1> make_tao.log 2>make_tao_err.log
(cd $DDS_ROOT; make clean && make) 1> make_dds.log 2>make_dds_err.log
echo “---END---“

 

NOTE: 參考lyingbo的文章,只編譯make –C ace、make –C apps/gperf/src會是ACEXML庫缺失,在隨后的編譯make –C orbsvcs的過程中,無法生成tao_imr_relocator等組件。在進行完全編譯(即使用根目錄下makefile編譯)后,能夠順利完整組件。

g. 運行測試腳本

編譯完成之后,可以運行測試腳本觀察是否OpenDDS環境是否搭建成功。切換到$DDS_ROOT/examples/DCPS/Messenger_Imr目錄,運行run_test.pl

運行結果顯示test PASSED,測試成功。

3 編譯代碼版本


ACE、TAO提供了源代碼版本,源代碼版本不包含項目文件,如果在編譯Full版本發現問題時,可以使用源代碼版本重新生成項目文件后再編譯。當然也可以下載Full版本,使用find和rm命令刪除所有makefile后重新生成。

編譯過程如下:

1. 下載ACE+TAO源代碼版本,解壓。

2. 設置環境變量$ACE_ROOT和$TAO_ROOT

3. 創建config.h和platform_macros.GNU

4. 使用MPC工具編譯

mwc.pl ACE.mwc –type gnuace
mwc.pl TAO_ACE.mwc –type gnuace

 

 

 

參考文章

http://blog.sina.com.cn/s/blog_6f83fdb40101i62i.html

http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/ACE/ACE-INSTALL.html#win32
http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/TAO/TAO-INSTALL.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM