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

Linux下编译OpenDDS,布布扣,bubuko.com

Linux下编译OpenDDS

上一篇:linux权限及ntfs文件系统权限的知识


下一篇:Linux rmdir 命令实现(特别版)