天天看點

Windows下OpenDDS安裝

需要準備:Visual Studio,并安裝Windows SDK,還需要安裝 ActivePerl

1.OpenDDS下載下傳:

連結:http://opendds.org/downloads.html

建議順便下載下傳官方文檔:http://download.objectcomputing.com/OpenDDS/OpenDDS-latest.pdf

如果文檔下載下傳速度太慢可以百度網盤下載下傳:https://pan.baidu.com/s/1fLYh1jA6B1rIAWNFOPtQ0Q

2.ACE+TAO下載下傳:

連結:http://download.dre.vanderbilt.edu/

選擇 Latest ACE+TAO Micro Release 下面的就可以

下面的安裝基于OpenDDS 3.13和ACE+TAO 6.5.3

1.首先解壓源碼:

假設OpenDDS解壓到E:\OpenDDS-3.13,ACE+TAO解壓到E:\OpenDDS-3.13\ACE_wrappers

2.然後編譯ACE+TAO:

建立環境變量: 

ACE_ROOT = E:\OpenDDS-3.13\ACE_wrappers 

TAO_ROOT = %ACE_ROOT%\TAO 

在系統環境變量Path中添加:

%ACE_ROOT%\bin;%ACE_ROOT%\lib

進入%ACE_ROOT%\ace目錄,建立一個名為config.h的檔案,内容:

#include "ace/config-win32.h"
           

分别進入%ACE_ROOT%目錄、%ACE_ROOT%\TAO目錄,用Visual Studio打開與VS版本比對的ACE_**.sln、TAO_ACE_**.sln檔案,例如VS2017就打開TAO_ACE_vs2017.sln。進入之後重定解決方案目标:項目 - 重定解決方案目标,然後點确定就行,等待自動配置完成

然後編譯源碼。方法有兩種:第一種是直接在VS中選擇 生成 - 生成解決方案 ,第二種是啟動VS的開發人員指令行,定位到%ACE_ROOT%\TAO下,使用以下指令編譯:

msbuild TAO_ACE_vs2017.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.編譯OpenDDS

啟動VS的開發人員指令行,定位到E:\OpenDDS-3.13下,輸入 .\configure 指令(如果要開啟java支援,需要使用 .\configure --java),等待指令執行完畢

如果提示:

ERROR: Could not detect Visual C++ version, try running this script "."from the Visual Studio Command Prompt.Stopped

,請在configure檔案中添加下面内容到420行(根據自己使用的vs版本修改,我使用的是2017是以寫vs2017):

$opts{'compiler_version'} = "vs2017";
           

此時程式自動生成了DDS.sln檔案和setenv.cmd檔案,在指令行執行setenv.cmd設定環境變量,然後打開新生成的sln檔案、重定項目目标,然後編譯源碼并等待操作完成。如果是64位系統,也需要編譯為64位版本(把Win32換成x64):

Windows下OpenDDS安裝

4.測試

OpenDDS自帶了很多執行個體,存放在%DDS_ROOT%\examples和%DDS_ROOT%\tests\DCPS下(java示例在%DDS_ROOT%\java\tests下)

随便挑一個運作裡面的run_test.pl,能正常收發資料即可

tips:Java執行個體會有很多JNI的輸出,長得和異常資訊差不多,但實際上沒有出錯,隻要最後提示test passed就是成功的