VS2015编译OpenDDS
最近需要研究下OpenDDS,因此需要搭建個環(huán)境,下面是一點經(jīng)驗,大家可以參考。
使用版本是OpenDDS-3.12、ACE+TAO-6.5.10和strawberry-perl,之所以使用ACE+TAO-6.5.10是因為往后的版本沒有現(xiàn)成的2015對應(yīng)的sln了。
一.資源下載
1.可以直接使用我提供的鏈接下載,如下:
鏈接:https://pan.baidu.com/s/1dXXKsXqla6bxNCavdVpwdQ?
提取碼:jahi
2.可以去官網(wǎng)下載,鏈接如下:
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環(huán)境
1.將解壓后的OpenDDS-3.12代碼放到E:\build\OpenDDS里,然后將解壓后的ACE_wrappers放到OpenDDS-3.12里面,如下圖所示:
2.將config.h放到E:\build\OpenDDS\OpenDDS-3.12\ACE_wrappers\ace里面。
如果沒有使用網(wǎng)盤下載,新建一個config.h,里面內(nèi)容如下即可:
#include "ace/config-win32.h"3.設(shè)置環(huán)境變量
新增變量如下:
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
然后再系統(tǒng)path里加入如下:
%ACE_ROOT%\bin
%ACE_ROOT%\lib
%DDS_ROOT%\bin
%DDS_ROOT%\lib
設(shè)置完后如下圖:
?
?四.編譯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.每個工程都需要進(jìn)行"項目"-"重定解決方案目標(biāo)",然后再生成
3.TAO_ACE_vc14.sln編譯可能出現(xiàn)的問題
可能會提示 error C2280: “CORBA::ValueFactoryBase::ValueFactoryBase(const CORBA::ValueFactoryBase &)”: 嘗試引用已刪除的函數(shù)
出現(xiàn)此問題后,修改SecurityLevel3C.h文件
修改類Statement_init,添加選中部分
?修改類X509IdentityStatement_init,添加選中部分
?五.編譯OpenDDS
1.修改configure
413行插入如下
1242行插入
2.然后使用VS2015命令行工具
3.進(jìn)入到OpenDDS目錄里,然后輸入configure,如下:
?回車確認(rèn),等待一會,打印如下:
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,然后打開編譯即可。
總結(jié)
以上是生活随笔為你收集整理的VS2015编译OpenDDS的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dom4j和jaxp解析工具的
- 下一篇: 原创:MD5 32位加密软件