日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

VS2015编译OpenDDS

發布時間:2023/12/10 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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,然后打開編譯即可。

總結

以上是生活随笔為你收集整理的VS2015编译OpenDDS的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。