本篇博客主在系统详细地帮助大家熟悉OpenDDS环境搭建的步骤,希望能对大家的环境搭建有所帮助。
系统介绍了自己的OpenDDS环境编译过程,希望大家能参考我的教程,搭建成功!!
需要注意的是:部分结果输出不一样不用担心,只要不报错就行。(希望大家永不报错)
一、软件准备及安装
1、软件安装包
所需要的软件包括:Perl、VS2010、ACE+TAO+CIAO、OpenDDS
相应的软件安装压缩包链接地址如下:
链接:https://pan.baidu.com/s/1VzJK2MCi_CD9kqr_l_rK3g 提取码:open
2、软件安装简述
这四个软件,安装时都比较简单。建议把Perl、ACE+TAO+CIAO、OpenDDS-3.10都装在同一文件夹OpenDDS下,如下图
VS2010:不需要破解,安装教程参考Visual Studio2010安装教程 (qq.com);
Perl:不需要破解,直接解压安装到指定目录下就可以(无脑下一步安装,选择一下安装位置即可);
ACE+TAO+CIAO:直接解压到文件夹OpenDDS下,不用安装;
OpenDDS:直接解压到文件夹OpenDDS下,不用安装;
二、编译ACE_TAO
1、设置环境变量(编译准备工作)
设置环境变量在 计算机--属性--高级系统设置--环境变量--系统变量 中设置
Perl:不用配置,安装时会自动将环境变量配置在系统变量的Path中。检查即可
ACE+TAO+CIAO:需要配置4个,依次如下:(注意填写你们自己的地址)
添加变量名 ACE_ROOT,值为解压路径:E:\Software\Work\OpenDDS\ACE_wrappers
添加变量名 TAO_ROOT,值为解压路径:E:\Software\Work\OpenDDS\ACE_wrappers\TAO
添加变量名 CIAO_ROOT,值为解压路径:%TAO_ROOT%\CIAO
这个可加可不加,对后面用处不大
在 Path 后添加%ACE_ROOT%\lib和%ACE_ROOT%\bin
注意:这里添加Path路径时,按照下图分开写。尽量不要图省事把几个路径写在一起,因为我当初这样写编译一致出现问题!!!
2、添加config.h文件
在E:\Software\Work\OpenDDS\ACE_wrappers\ace 下新建一个空的配置文件 config.h
文件内容为:#include "ace/config-win32.h"
3、使用VS2010编译(重点)
· 首先,编译TAO_ACE.sln(两种方式任选其一,推荐第二种方式)
方式一:使用编译器编译(编译分为三步:打开文件、重新扫描解决方案、生成解决方案)
打开文件(文件在E:\Software\Work\OpenDDS\ACE_wrappers\TAO\TAO_ACE_vc10.sln)
重新扫描解决方案
生成解决方案(时间较长,请耐心等待)
编译成功界面
方式二:使用命令行编译
从VS进入命令行页面
cd到要编译的文件目录下,使用如下命令进行编译:
msbuild TAO_ACE_vc10.sln /p:Configuration=Debug
等待编译结果。警告可以忽略。没有报错即编译成功了!
补充: 如果编译不成功,进行如下尝试。
首先检查环境变量是否出错;
也有可能不会一次编译成功,需要多次编译,一次编译成功一部分;
也有可能环境变量未生效,需要重启,检查环境变量后再编译。
· 其次,编译E:\Software\Work\OpenDDS\ACE_wrappers\ACE_vc10.sln
方式一:步骤同上(打开,重定解决方案,生成解决方案)
结果如下:
方式二:cd到指定目录,使用命令msbuild ACE_vc10.sln /p:Configuration=Debug
注意: cd .. 的意思是返回上级目录。这里返回上级即可进入到指定目录
结果如下:不报错即可
· 最后,编译E:\Software\Work\OpenDDS\ACE_wrappers\TAO\tests\Hello\Hello_vc10.sln
方式一:步骤同上(打开,重定解决方案,生成解决方案)
结果如下:
方式二:cd到指定目录,使用命令msbuild Hello_vc10.sln /p:Configuration=Debug
结果如下:不报错即可
4、验证编译是否成功
使用管理员方式打开VS2010命令行(图中红框--右键--更多--以管理员身份运行)
也可以直接在VS中打开命令行(参考方式二)
在命令行窗口cd到指定run_test.pl文件的位置
(如下图,执行run_test.pl得到如下结果即环境编译成功)
三、OpenDDS的编译
1、配置环境变量-系统变量(参考 二、1 部分)
添加变量名 DDS_ROOT,值为解压路径:E:\Software\Work\OpenDDS\OpenDDS-3.10
在 Path 后添加%DDS_ROOT%\lib和%DDS_ROOT%\bin
注意:这里添加Path路径时,按照下图分开写。尽量不要图省事把几个路径写在一起,因为我当初这样写编译一致出现问题!!!
2、编译
打开 VS2010 命令提示窗口(参考二、4),
在E:\Software\Work\OpenDDS\OpenDDS-3.10目录下运行 configure.cmd
运行可能会报错如下:(3.10版本报错如下,其他版本不一定)
原因:这是因为 OpenDDS 和当前你的 vs 版本依赖不成功,需要修改 configure 脚本,找到 报错的407行,添加一行代码,将vc参数改成目前你安装的vs版本,如果你用的是vs2010, 就将参数改为 vc10,以此类推,如下图:
再次运行configure.cmd,正确结果如下。
同时会在E:\Software\Work\OpenDDS\OpenDDS-3.10目录下生成DDS.sln文件。
同时发现根目录下还会出现一个 setenv.cmd 脚本,这是设置环境变量的脚本,
使用VS2010(参考二、4),直接运行setenv.cmd,成功运行后是这样的界面:
然后使用如下命令行,检查一下我们的环境变量是否正确设置:
echo %MPC_ROOT%
echo %ACE_ROOT%
echo %TAO_ROOT%
以上两步结果如下:
出现类似以上结果就表明环境变量配置成功了。
可以用 VS2010 打开 DDS.sln 工程文件进行编译了。(同样两种编译方式)
方式一:这里我编译没有完全成功,通过询问大佬,说这个影响不大,所以你们没有成功也不用担心,下面最后一步可以执行成功。
方式二:编译成功。
3、检验DDS环境是否搭建成功
使用VS命令行(参考 二、4)在E:\Software\Work\OpenDDS\OpenDDS-3.10\examples\DCPS\Messenger_Imr目录下执行 run_test.pl 命令。
因为编译过程有些长,分两张图展示。
恭喜大家,见到 test PASSED 就成功了!
本文写的足够详细了,对于没有经验的新手应该够用了,以后会陆续更新普通发布订阅和Java环境下的发布订阅实例。如有问题请咨询QQ:740874037
友友们,点个赞再走吧!