VS2015编译OpenDDS

article/2025/10/4 7:58:59

最近需要研究下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,然后打开编译即可。


http://chatgpt.dhexx.cn/article/U711B6QH.shtml

相关文章

Java调用OpenDDS(2)-理解OpenDDS自带的Messager示例

OpenDDS安装好之后,下一步就是利用OpenDDS来开发通信项目了。不过在项目中应用OpenDDS之前,先消化一下OpenDDS安装包中自带的示例项目messenger,通过阅读messenger的源代码来熟悉一下OpenDDS提供的用来开发Java项目的类。 提纲 1、准备工作 2…

OpenDDS

OpenDDS简介 Don Busch,首席软件工程师兼合作伙伴 Object Computing,Inc.(OCI) 介绍 分布式实时应用程序有时以数据为中心而不是以服务为中心,这意味着分布式系统中参与者的主要目标是分发应用程序数据,而…

OpenDDS系列(3) —— 第一个OpenDDS程序

文章目录 [toc]3.1 发送数据3.2 项目3.2.1 主题3.2.2 Publisher(发布者)3.2.3 Subscriber(订阅者) 3.3 在Windows上构建3.4 在Linux上构建3.4.1 运行 3.5 结论 3.1 发送数据 我们将创建一个主题,这是一个通过DDS交换数…

OpenDDS学习笔记(2):DDS概述

文章目录 一、DDS体系结构1.1 DLRL层1.2 DCPS层 二、DDS通信过程三、DDS通信特点四、DDS标准实现4.1 RTI DDS软件4.2 OpenSplice DDS软件4.3 OpenDDS软件 一、DDS体系结构 DDS采用DCPS通信机制,提供一个与平台无关的数据模型。它允许应用程序实时发布拥有的信息&am…

OpenDDS系列(1) —— OpenDDS 简介

1. OpenDDS简要介绍 1.1 简介 1.1.1 DDS是什么1.1.2 DDS通信的基本要素1.1.3 DDS架构的主要优点1.1.4 DDS产品种类1.1.5 OpenDDS 1.2 DDS的应用领域 美国海上战争中心(NSWC)高性能分布式计算系统(HiPer-D) 1.3 结论 1. OpenDDS简要介绍 1.1 简介 1.1.…

IDEA中查找与替换快捷键(项目全局替换、该文件下替换)

该文件下查找(CtrlF) 项目全局查找(CtrlShiftF 或【Edit】——>【Find】——>【Find in Path…】) 注意:本人电脑上的IDEA版本不支持该快捷键(CtrlShiftF),有可能是快捷键冲突…

idea实现快捷批量修改替换

1. 在当前文件内容中替换 idea替换快捷键,批量处理对象 ctrl r: 当前文件内容替换,指的是在当前打开的文件中替换匹配的字符,只操作一个文件。 2. 在路径中替换(可替换不同文件夹中的内容) ctrl shift r: 在路径中替换,指的是…

idea 查找与替换

查找当前文件内容:ctrlF 如上图片 查找全局文件:ctrlshiftF 或double shift(按两下)或ctrlshiftN替换当前文件内容 :ctrlR 如上图片 你想通过编辑器快速的将所有的’29’,变为29,你可以 ctrl…

IDEA全局替换

在做项目时,有时会在整个项目里或指定文件夹下进行全局搜索和替换,这是一个很方便功能。使用方法如下: 一、全局搜索 1、使用快捷键CtrlShiftF打开搜索窗口,或者通过点击Edit–>Find–>Find in path打开搜索窗口&#xff0…

idea 替换

idea 替换功能说明 快捷键: ctrl R界面说明

idea全局查找和替换

原文 https://blog.csdn.net/fanrenxiang/article/details/80168215 全局查找 通过快捷键 CtrlShiftf 快速进入全局查找页面,或者通过 Edit 》Find 》Find In Path 1、你要检索的内容; 2、如何匹配内容,分别表示 区分大小写、单个单词、正则、过滤查找…

JDK更换IDEA如何修改

一、.打开idea设置。 1、点击file里面的settings... 二、取消默认javac编译 2、然后点开 Build, Execution, Deployment找到里面的compiler,再点开Java compiler 取消勾选。点击🆗 如图演示: 三、检查项目jdk配置 3、点击file里面的…

总结idea全局搜索和替换的快捷键

文章目录 1. 文章引言2. 按文本内容查找(替换)3. 按文件名称搜索文件4. 查看类的继承关系5. 查找类(方法)在哪使用6. 搜索任何东西7. 按名字搜索类 1. 文章引言 我们在使用idea做java开发时,通常会执行如下查找: 在页面内查找或替换 全局查找或替换 按…

IDEA代码替换

IDEA代码替换 快捷键 当前文件内容 C t r l R CtrlR CtrlR 全局替换 C t r l S h i f t R CtrlShiftR CtrlShiftR 使用 第一行输入栏:输入被替换内容 第二行输入栏:输入替换内容 详细使用 第一行输入栏后第一个图标:换行 第一行输…

IntelliJ IDEA中怎么全局搜索替换(整个项目)(Eclipse)

IntelliJ IDEA使用教程 (总目录篇) 我们用Eclipse或者IntelliJ IDEA编程,有时候需要将整个项目的某个字符串替换成其他的。 全局搜索我会,我还给调成ctrlg了呢,但是遇到要全局(整个项目)替换字符串。哎哟&#xff0c…

idea利用正则表达式快速替换

idea利用正则表达式快速替换 需求&#xff1a;要将link标签中的href属性替换成用thymeleaf表达的形式&#xff0c;让其资源寻址是从从项目名开始寻找的 如将<link rel"stylesheet" href"assets/css/bootstrap.min.css"> 换成<link rel"styl…

intellij idea全局查找和替换

点击这里查看 <intellij idea使用教程汇总篇> 全局查找 通过快捷键 CtrlShiftf 快速进入全局查找页面&#xff0c;或者通过 Edit 》Find 》Find In Path 1、你要检索的内容; 2、如何匹配内容&#xff0c;分别表示 区分大小写、单个单词、正则、过滤查找文件; 3、查找…

IDEA全局替换快捷键

Intellij IDEA使用教程相关系列 目录 Intellij IDEA 强大的搜索能力 IDEA全局替换 通过快捷键 CtrlShiftr 或这点击 Edit 》Find 》Replace In Path 有些IDEA版本按了快捷键也没效果&#xff0c;经常遇到的原因如下&#xff1a; 1、与其他软件快捷键冲突了&#xff0c;特别是…

idea替换所有文件中的内容

通过快捷键CtrlShiftR打开窗口&#xff0c;或者通过点击Edit–>Find–>Replace in path打开窗口。如下图&#xff1a; 输入被替换和要替换的内容后&#xff0c;点击replace all即可替换全部。

IDEA 批量修改变量名、批量替换代码快捷键

平时学习过程中经常遇到一些变量名需要依照规范来修改的&#xff0c;这里记录Idea批量修改变量名&#xff0c;或者批量修改代码的快捷键&#xff0c;希望对大家有所帮助吧。1. 使用Shift F6批量修改变量名 选中要修改的变量名按ShiftF6&#xff0c;然后就可以直接编辑 编辑完…