項目中使用OpenDDS作為通信的架構,然後在VS2013的編輯環境下重新進行編譯了一下。
1. 環境
VS2013 + 32位 + Windowss64
2. 安裝Perl
2.1.下載下傳安裝
下載下傳位址:https://www.activestate.com/products/perl/downloads/
下載下傳完成後,點選直接安裝:
安裝過程中選擇全部安裝:
2.2.驗證
安裝完成後,在控制台輸入指令:
perl –v
有版本輸出資訊,則表示安裝成功。
3. 現在ACE+TAO
3.1.下載下傳
下載下傳位址:http://download.dre.vanderbilt.edu/
注意:一定要選擇6.5.0版本這個版本支援VS2013,最新版本不在支援VS2013
下載下傳完成後,解壓:存放路徑:F:\DDS
在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
3.2.ACE+TAO
使用VS2013自帶的控制台指令提示編譯,
輸入指令進入到ACE坐在的目錄,
編譯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 IDE打開編譯
4.OpenDDS
4.1 下載下傳
下載下傳位址:https://opendds.org/
下載下傳完成後,解壓,存放路徑:F:\DDS
4.2 配置環境變量
配置系統環境變量:
DDS_ROOT 值: F:\DDS\OpenDDS-3.13.3
添加Path:%DDS_ROOT%\lib;%DDS_ROOT%\bin
4.3.編譯
利用指令生成sln項目解決方案:
不需要測試項目的工程
mwc.pl -type vc12 DDS_no_tests.mwc
生成全部工程
mwc.pl -type vc12 DDS.mwc
出現的問題:
彈出對話框提示“無法打開此檔案”
解決辦法:
a. 右鍵打開 ACE_wrappers\bin\mwc.pl 在程式清單中選擇打開程式,
b. 打開系統資料庫,找到perl.exe,并且修改如下值:
c. 修改pl_auto_file ,修改成如下值:
再次運作指令:
mwc.pl -type vc12 DDS_no_tests.mwc
這樣就成功了!
注意:以上所有的指令行輸入環境都是VS2013環境下的指令行提示符!
aaa