天天看点

使用VS2013+32位编译OpenDDS

项目中使用OpenDDS作为通信的框架,然后在VS2013的编辑环境下重新进行编译了一下。

1. 环境

VS2013 + 32位 + Windowss64

2. 安装Perl

2.1.下载安装

下载地址:https://www.activestate.com/products/perl/downloads/

使用VS2013+32位编译OpenDDS

下载完成后,点击直接安装:

使用VS2013+32位编译OpenDDS

安装过程中选择全部安装:

使用VS2013+32位编译OpenDDS

2.2.验证

安装完成后,在控制台输入命令:

perl –v
           

有版本输出信息,则表示安装成功。

使用VS2013+32位编译OpenDDS

3. 现在ACE+TAO

3.1.下载

下载地址:http://download.dre.vanderbilt.edu/

使用VS2013+32位编译OpenDDS

注意:一定要选择6.5.0版本这个版本支持VS2013,最新版本不在支持VS2013

下载完成后,解压:存放路径:F:\DDS

使用VS2013+32位编译OpenDDS

在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

使用VS2013+32位编译OpenDDS
使用VS2013+32位编译OpenDDS

3.2.ACE+TAO

使用VS2013自带的控制台命令提示编译,

使用VS2013+32位编译OpenDDS
使用VS2013+32位编译OpenDDS

输入命令进入到ACE坐在的目录,

使用VS2013+32位编译OpenDDS

编译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+32位编译OpenDDS

这个编译的时间较长。

注意:以上两个编译最好不要使用VS2013 IDE打开编译

4.OpenDDS

4.1 下载

下载地址:https://opendds.org/

使用VS2013+32位编译OpenDDS

下载完成后,解压,存放路径:F:\DDS

4.2 配置环境变量

配置系统环境变量:

DDS_ROOT 值: F:\DDS\OpenDDS-3.13.3

添加Path:%DDS_ROOT%\lib;%DDS_ROOT%\bin

使用VS2013+32位编译OpenDDS

4.3.编译

利用命令生成sln项目解决方案:

不需要测试项目的工程

mwc.pl -type vc12 DDS_no_tests.mwc
           

生成全部工程

mwc.pl -type vc12 DDS.mwc
           

出现的问题:

弹出对话框提示“无法打开此文件”

解决办法:

a. 右键打开 ACE_wrappers\bin\mwc.pl 在程序列表中选择打开程序,

使用VS2013+32位编译OpenDDS

b. 打开注册表,找到perl.exe,并且修改如下值:

使用VS2013+32位编译OpenDDS

c. 修改pl_auto_file ,修改成如下值:

使用VS2013+32位编译OpenDDS

再次运行命令:

mwc.pl -type vc12 DDS_no_tests.mwc
           

这样就成功了!

注意:以上所有的命令行输入环境都是VS2013环境下的命令行提示符!

aaa