天天看點

使用VS2013+32位編譯OpenDDS

項目中使用OpenDDS作為通信的架構,然後在VS2013的編輯環境下重新進行編譯了一下。

1. 環境

VS2013 + 32位 + Windowss64

2. 安裝Perl

2.1.下載下傳安裝

下載下傳位址:https://www.activestate.com/products/perl/downloads/

使用VS2013+32位編譯OpenDDS

下載下傳完成後,點選直接安裝:

使用VS2013+32位編譯OpenDDS

安裝過程中選擇全部安裝:

使用VS2013+32位編譯OpenDDS

2.2.驗證

安裝完成後,在控制台輸入指令:

perl –v
           

有版本輸出資訊,則表示安裝成功。

使用VS2013+32位編譯OpenDDS

3. 現在ACE+TAO

3.1.下載下傳

下載下傳位址:http://download.dre.vanderbilt.edu/

使用VS2013+32位編譯OpenDDS

注意:一定要選擇6.5.0版本這個版本支援VS2013,最新版本不在支援VS2013

下載下傳完成後,解壓:存放路徑:F:\DDS

使用VS2013+32位編譯OpenDDS

在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

使用VS2013+32位編譯OpenDDS
使用VS2013+32位編譯OpenDDS

3.2.ACE+TAO

使用VS2013自帶的控制台指令提示編譯,

使用VS2013+32位編譯OpenDDS
使用VS2013+32位編譯OpenDDS

輸入指令進入到ACE坐在的目錄,

使用VS2013+32位編譯OpenDDS

編譯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+32位編譯OpenDDS

這個編譯的時間較長。

注意:以上兩個編譯最好不要使用VS2013 IDE打開編譯

4.OpenDDS

4.1 下載下傳

下載下傳位址:https://opendds.org/

使用VS2013+32位編譯OpenDDS

下載下傳完成後,解壓,存放路徑:F:\DDS

4.2 配置環境變量

配置系統環境變量:

DDS_ROOT 值: F:\DDS\OpenDDS-3.13.3

添加Path:%DDS_ROOT%\lib;%DDS_ROOT%\bin

使用VS2013+32位編譯OpenDDS

4.3.編譯

利用指令生成sln項目解決方案:

不需要測試項目的工程

mwc.pl -type vc12 DDS_no_tests.mwc
           

生成全部工程

mwc.pl -type vc12 DDS.mwc
           

出現的問題:

彈出對話框提示“無法打開此檔案”

解決辦法:

a. 右鍵打開 ACE_wrappers\bin\mwc.pl 在程式清單中選擇打開程式,

使用VS2013+32位編譯OpenDDS

b. 打開系統資料庫,找到perl.exe,并且修改如下值:

使用VS2013+32位編譯OpenDDS

c. 修改pl_auto_file ,修改成如下值:

使用VS2013+32位編譯OpenDDS

再次運作指令:

mwc.pl -type vc12 DDS_no_tests.mwc
           

這樣就成功了!

注意:以上所有的指令行輸入環境都是VS2013環境下的指令行提示符!

aaa