由于项目中需要使用到OpenDDS,故记录下环境搭建过程。
安装环境
- windows 10 64位
- 已安装 Visual Stdio 2017、Visual Stdio 2019
安装步骤
总述:需安装Perl、ACE+TAO、OpenDDS
第一步:安装Perl
下载地址:https://www.activestate.com/activeperl/downloads
- 选择windows下64位对应安装包
- 解压
- 直接安装(安装时默认勾选添加到环境变量,不用取消)
验证Perl:
命令行输入: perl –v
打印perl版本信息表明安装成功
第二步:安装ACE+TAO
下载地址:http://download.dre.vanderbilt.edu/
-
选择 第三行 full 版本 进行下载,然后解压到指定目录(我解压到D:\codeEnv\OpenDDS),解压完成后会在指定目录下生成 ACE_wrappers 文件夹,该文件夹即我们需要的。
-
设置环境变量(系统变量)
添加:ACE_ROOT 值 D:\codeEnv\OpenDDS\ACE_wrappers
添加:TAO_ROOT 值 %ACE_ROOT%\TAO
Path中添加:%ACE_ROOT%\lib; %ACE_ROOT%\bin添加config.h文件
在 D:\codeEnv\OpenDDS\ACE_wrappers\ace 文件夹下新建一个配置文件 config.h,内容为 #include “ace/config-win32.h”。 -
编译ACE
先了解:工程文件 和 VS版本 对应关系;
项目文件名 | 对应的VS版本 |
---|---|
ACE_vc12.sln | VS2013 |
ACE_vc14.sln | VS2015 |
ACE_vs2017.sln | VS2017 |
ACE_vs2019.sln | VS2019 |
两种方法编译ACE( 编译时长大概为半个小时或更久 )
法1:如下图ACE_wrappers目录下会有许多VS工程目录,由VS打开对应版本的.sln文件(双击文件),开始编译;
法2:利用 VS命令行进行编译
命令:msbuild ACE_vs2019.sln /p:Configuration=Debug /p:platform=x64 /maxcpucount:8 > build_ace_debug.log
注意 替换命令中 ACE_vs2019.sln 选项;
编译过程无任何提示,完成后会在目录下生成 build_ace_debug.log 日志文件,一般不会产生错误。
- 编译TAO( 编译时长大概为一个小时或更久 )
切换到 D:\codeEnv\OpenDDS\ACE_wrappers\TAO 目录下,也会有多个VS工程目录,编译方法同上,下面是使用命令行编译方法;
继续使用刚才命令行,在刚才编译ACE目录下使用cd .\TAO
命令切换至TAO目录下;
命令:msbuild TAO_ACE_vs2019.sln /p:Configuration=Debug /p:platform=x64 /maxcpucount:8 > build_tao_debug.log
编译过程无任何提示,完成后会在目录下生成 build_tao_debug.log 日志文件,一般不会产生错误。
第三步:安装OpenDDS
下载地址:http://opendds.org/
-
下载最新版本
-
解压到 D:\codeEnv\OpenDDS\
-
添加到环境变量(系统变量)
添加 DDS_ROOT 值 D:\codeEnv\OpenDDS
Path 中添加 %DDS_ROOT%\lib;%DDS_ROOT%\bin -
使用vs开发者命令行(上面使用的命令行工具),切换到D:\codeEnv\OpenDDS文件夹,
cd D:\codeEnv\OpenDDS
命令:configure.cmd
这里也许会出现错误,提示VS版本不对,按照提示找到对应文件(configure.sh文件)对应行修改即可,工程文件与VS版本对应见上表,修改完成以后再次执行configure.cmd
命令。 -
成功之后会在当前目录下生成 DDS.sln VS工程文件;
-
继续输入命令
msbuild DDS.sln /p:Configuration=Debug /p:platform=x64 /maxcpucount:8 > build_dds_debug.log
进行编译,或者使用VS进行编译,方法同上。 -
编译时长大概一个小时或更久,完成后会在目录下生成 build_dds_debug.log 日志文件,一般不会产生错误。
验证
切换到 %DDS_ROOT%\example\DCPS\Messenger_Imr 目录
运行 run_test.pl
出现 test PASSED
成功,完结。