需要准备:Visual Studio,并安装Windows SDK,还需要安装 ActivePerl
1.OpenDDS下载:
链接:http://opendds.org/downloads.html
建议顺便下载官方文档:http://download.objectcomputing.com/OpenDDS/OpenDDS-latest.pdf
如果文档下载速度太慢可以百度网盘下载:https://pan.baidu.com/s/1fLYh1jA6B1rIAWNFOPtQ0Q
2.ACE+TAO下载:
链接:http://download.dre.vanderbilt.edu/
选择 Latest ACE+TAO Micro Release 下面的就可以
下面的安装基于OpenDDS 3.13和ACE+TAO 6.5.3
1.首先解压源码:
假设OpenDDS解压到E:\OpenDDS-3.13,ACE+TAO解压到E:\OpenDDS-3.13\ACE_wrappers
2.然后编译ACE+TAO:
新建环境变量:
ACE_ROOT = E:\OpenDDS-3.13\ACE_wrappers
TAO_ROOT = %ACE_ROOT%\TAO
在系统环境变量Path中添加:
%ACE_ROOT%\bin;%ACE_ROOT%\lib
进入%ACE_ROOT%\ace目录,创建一个名为config.h的文件,内容:
#include "ace/config-win32.h"
进入%ACE_ROOT%\TAO目录,用Visual Studio打开与VS版本匹配的TAO_ACE_**.sln文件,例如VS2017就打开TAO_ACE_vs2017.sln。进入之后重定解决方案目标:项目 - 重定解决方案目标,然后点确定就行,等待自动配置完成
然后编译源码。方法有两种:第一种是直接在VS中选择 生成 - 生成解决方案 ,第二种是启动VS的开发人员命令行,定位到%ACE_ROOT%\TAO下,使用以下命令编译:
msbuild TAO_ACE_vs2017.sln /p:Configuration=Debug;Platform=x64 /m:2
解释下参数:
- Configuration=Debug代表debug编译
- Platform=x64代表强制编译为64位版本,原因:如果需要使用Java进行OpenDDS开发,考虑到目前绝大多数人都在使用64位版本的JDK,如果不将OpenDDS编译为64位版,则无法进行JNI调用
- /m:2 代表使用两个线程并行编译,实测比起单线程能节省不止一半的时间,建议设置为和自己CPU数一致
耗时很长,等待完成即可
3.编译OpenDDS
启动VS的开发人员命令行,定位到E:\OpenDDS-3.13下,输入 .\configure 命令(如果要开启java支持,需要使用 .\configure --java),等待命令执行完毕
此时程序自动生成了DDS.sln文件和setenv.cmd文件,在命令行执行setenv.cmd设置环境变量,然后和上一步一样,打开sln文件、重定项目目标,然后编译源码并等待操作完成
4.测试
OpenDDS自带了很多实例,存放在%DDS_ROOT%\examples和%DDS_ROOT%\tests\DCPS下(java示例在%DDS_ROOT%\java\tests下)
随便挑一个运行里面的run_test.pl,能正常收发数据即可
tips:Java实例会有很多JNI的输出,长得和异常信息差不多,但实际上没有出错,只要最后提示test passed就是成功的