项目中使用OpenDDS作为通信的框架,然后在VS2013的编辑环境下重新进行编译了一下。
1. 环境
VS2013 + 32位 + Windowss64
2. 安装Perl
2.1.下载安装
下载地址:https://www.activestate.com/products/perl/downloads/
下载完成后,点击直接安装:
安装过程中选择全部安装:
2.2.验证
安装完成后,在控制台输入命令:
perl –v
有版本输出信息,则表示安装成功。
3. 现在ACE+TAO
3.1.下载
下载地址:http://download.dre.vanderbilt.edu/
注意:一定要选择6.5.0版本这个版本支持VS2013,最新版本不在支持VS2013
下载完成后,解压:存放路径:F:\DDS
在ACE_wrappers\ace目录下面添加一个文件:config.h,在文件中添加内容:
#ifndef ACE_CONFIG_H
#define ACE_CONFIG_H
#include "ace/config-win32.h"
#endif
3.1 配置环境变量
添加系统环境变量:
ACE_ROOT 值:F:\DDS\ACE_wrappers
TAO_ROOT 值:%ACE_ROOT%\TAO
Path中添加:%ACE_ROOT%\lib; %ACE_ROOT%\bin
3.2.ACE+TAO
使用VS2013自带的控制台命令提示编译,
输入命令进入到ACE坐在的目录,
编译Release版本命令:
msbuild ACE_vc12.sln /p:Configuration=Release
编译Debug版本命令:
msbuild ACE_vc12.sln /p:Configuration=Debug
msbuild TAO_ACE_vs2015.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.3.编译TAO
通过命令行,进入到TAO文件夹内;
同样使用VS2013命令行;
编译Release版本命令:
msbuild ACE_TAO_vc12.sln /p:Configuration=Release
编译Debug版本命令:
msbuild ACE_TAO_vc12.sln /p:Configuration=Debug
有的版本是TAO_ACE_vc12,大家注意字符顺序!
这个编译的时间较长。
注意:以上两个编译最好不要使用VS2013 IDE打开编译
4.OpenDDS
4.1 下载
下载地址:https://opendds.org/
下载完成后,解压,存放路径:F:\DDS
4.2 配置环境变量
配置系统环境变量:
DDS_ROOT 值: F:\DDS\OpenDDS-3.13.3
添加Path:%DDS_ROOT%\lib;%DDS_ROOT%\bin
4.3.编译
利用命令生成sln项目解决方案:
不需要测试项目的工程
mwc.pl -type vc12 DDS_no_tests.mwc
生成全部工程
mwc.pl -type vc12 DDS.mwc
出现的问题:
弹出对话框提示“无法打开此文件”
解决办法:
a. 右键打开 ACE_wrappers\bin\mwc.pl 在程序列表中选择打开程序,
b. 打开注册表,找到perl.exe,并且修改如下值:
"C:\Perl64\bin\perl.exe" "%1" %*
c. 修改pl_auto_file ,修改成如下值:
"C:\Perl64\bin\perl.exe" "%1" %*
再次运行命令:
mwc.pl -type vc12 DDS_no_tests.mwc
这样就成功了!
注意:以上所有的命令行输入环境都是VS2013环境下的命令行提示符!
aaa