VS2015编译OpenDDS

最近需要研究下OpenDDS,因此需要搭建个环境,下面是一点经验,大家可以参考。

使用版本是OpenDDS-3.12、ACE+TAO-6.5.10和strawberry-perl,之所以使用ACE+TAO-6.5.10是因为往后的版本没有现成的2015对应的sln了。

一.资源下载

1.可以直接使用我提供的链接下载,如下:

链接:https://pan.baidu.com/s/1dXXKsXqla6bxNCavdVpwdQ 
提取码:jahi

2.可以去官网下载,链接如下:

opendds:

最新地址是:https://opendds.org/

OpenDDS-3.12地址是:Release OpenDDS 3.12 · objectcomputing/OpenDDS · GitHub

ACE+TAO:

最新地址是:https://github.com/DOCGroup/ACE_TAO/releases

ACE+TAO-6.5.10地址是:Release ACE+TAO-6_5_10 · DOCGroup/ACE_TAO · GitHub

strawberry-perl:

地址是:Strawberry Perl for Windows

二.安装strawberry-perl

如果没有perl,需要先安装strawberry-perl,之所以使用strawberry-perl,是因为官方推荐的它。

三.配置OpenDDS环境

1.将解压后的OpenDDS-3.12代码放到E:\build\OpenDDS里,然后将解压后的ACE_wrappers放到OpenDDS-3.12里面,如下图所示:

2.将config.h放到E:\build\OpenDDS\OpenDDS-3.12\ACE_wrappers\ace里面。

如果没有使用网盘下载,新建一个config.h,里面内容如下即可:

#include "ace/config-win32.h"

3.设置环境变量

新增变量如下:

DDS_ROOT = E:\build\OpenDDS\OpenDDS-3.12
ACE_ROOT = E:\build\OpenDDS\OpenDDS-3.12\ACE_wrappers
TAO_ROOT = E:\build\OpenDDS\OpenDDS-3.12\ACE_wrappers\TAO

然后再系统path里加入如下:

%ACE_ROOT%\bin
%ACE_ROOT%\lib
%DDS_ROOT%\bin
%DDS_ROOT%\lib

设置完后如下图:

 

 四.编译ACE+TAO

1.编译先后顺序,最好是按如下顺序编译,否则可能会有问题
(1).E:\build\OpenDDS\OpenDDS-3.12\ACE_wrappers\ACE_vc14.sln

(2).E:\build\OpenDDS\OpenDDS-3.12\ACE_wrappers\TAO\TAO_IDL\TAO_IDL_ACE_vc14.sln

(3).E:\build\OpenDDS\OpenDDS-3.12\ACE_wrappers\TAO\TAO_ACE_vc14.sln

2.每个工程都需要进行"项目"-"重定解决方案目标",然后再生成

3.TAO_ACE_vc14.sln编译可能出现的问题

可能会提示 error C2280: “CORBA::ValueFactoryBase::ValueFactoryBase(const CORBA::ValueFactoryBase &)”: 尝试引用已删除的函数

出现此问题后,修改SecurityLevel3C.h文件

修改类Statement_init,添加选中部分

 修改类X509IdentityStatement_init,添加选中部分

 五.编译OpenDDS

1.修改configure

413行插入如下

1242行插入

2.然后使用VS2015命令行工具

3.进入到OpenDDS目录里,然后输入configure,如下:

 回车确认,等待一会,打印如下:

E:\build\OpenDDS\OpenDDS-3.12>configure
ACE_ROOT/ace/config.h exists, skipping configuration of ACE+TAO
Running MPC to generate project files.
MPC_ROOT was set to E:\build\OpenDDS\OpenDDS-3.12\ACE_wrappers\MPC.
Using .../OpenDDS-3.12/ACE_wrappers/bin/MakeProjectCreator/config/MPC.cfg
Generating 'vc14' output using DDS_no_tests.mwc
Skipping OpenDDS_XML_QOS_XSC_Generation (qos_xml_handler.mpc); it requires xsc.
Skipping OpenDDS_QOS_XML_XSC_Handler (qos_xml_handler.mpc); it requires xerces.
Skipping OpenDDS_CorbaSeq (CorbaSeq.mpc); it avoids no_opendds_safety_profile.
Skipping OpenDDS_Corba (OpenDDS_Corba.mpc); it avoids no_opendds_safety_profile.
Skipping zerocopy_java_test (zerocopy.mpc); it requires java.
Skipping two_idl (two_idl.mpc); it requires java.
Skipping transport_config (transport_config.mpc); it requires java.
Skipping multirepo_test (multirepo_test.mpc); it requires java.
Skipping subscriber_idl_test (subscriber_idl_test.mpc); it requires java.
Skipping publisher_idl_test (publisher_idl_test.mpc); it requires java.
Skipping messenger_idl_test (messenger_idl_test.mpc); it requires java.
Skipping java_both_test (java_both_test.mpc); it requires java.
Skipping hello_java_client (hello_java_client.mpc); it requires java.
Skipping complex_idl_test (complex_idl_test.mpc); it requires java.
Skipping builtintopics_test (builtintopics_test.mpc); it requires java.
Skipping tao_java (tao_java.mpc); it requires java.
Skipping idl2jni_test_simple (idl2jni_test_simple.mpc); it requires java.
Skipping idl2jni_runtime (idl2jni_runtime.mpc); it requires java.
Skipping idl2jni_compact (idl2jni_compact.mpc); it requires java.
Skipping idl2jni_codegen (idl2jni_codegen.mpc); it requires java.
Skipping dcps_java (dcps_java.mpc); it requires java.
Skipping Monitor_App (Monitor.mpc); it requires qt4.
Skipping ExcelRTD (ExcelRTD.mpc); it requires qt4.
Skipping dissector (dissector.mpc); it requires wireshark_any.
Generation Time: 20s
Completed configuring OpenDDS, next build 'DDS_no_tests.sln' using the 'Debug' configuration to compile OpenDDS.
You can use the generated setenv.cmd script to set environment
variables for future shell sessions.
Start Visual Studio from this command prompt so that it inherits the correct
environment variables.

E:\build\OpenDDS\OpenDDS-3.12>

 4.找到E:\build\OpenDDS\OpenDDS-3.12里面的DDS_no_tests.sln,然后打开编译即可。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值