OpenDDS环境搭建-Windows 10
OpenDDS環境搭建-Windows 10
安裝環境:windows 10 64位
已安裝 :Visual Stdio 2017、Visual Stdio 2019
需安裝:Perl、ACE+TAO、OpenDDS
到這個網站下載微軟的軟件很方便:https://msdn.itellyou.cn/
ActivePerl 下載地址 https://www.activestate.com/products/perl/downloads/
ACE+TAO 下載地址 https://download.dre.vanderbilt.edu/previous_versions/
OpenDDS 下載地址 https://opendds.org/
官方文檔:
http://download.objectcomputing.com/OpenDDS/OpenDDS-latest.pdf
對應版本:
ActivePerl-5.28.msi
ACE+TAO-6.5.12.zip
OpenDDS-3.14.zip
這些版本對應很重要,我做的時候有一次最后編譯OpenDDS的時候提示ACE+TAO的版本太低了,導致重新編譯。(我已經編譯了很多不同的版本了)
第0步:安裝Visual Studio 2017,并安裝Windows SDK
(版本號的對應,對后續工程編譯很重要)
本人不了解VS,看網上基本上都選了C++桌面開發和Windows通用開發,還有右側的SDK。
第一步:安裝Perl
ActivePerl的安裝一路默認即可,這里就不贅述
perl下載地址:https://www.activestate.com/activeperl/downloads
1 選擇windows下64位對應安裝包
2 解壓
3 直接安裝(安裝時默認勾選添加到環境變量,不用取消)
4 驗證Perl:
命令行輸入: perl –v
打印perl版本信息表明安裝成功
第二步:安裝ACE+TAO
安裝前的準備工作:
下載地址:http://download.dre.vanderbilt.edu/
選擇 第三行 full 版本 進行下載,然后解壓完成后會在指定目錄下生成 ACE_wrappers 文件夾,該文件夾即我們需要的。
0.解壓安裝包.
1.設置環境變量
1)系統變量
ACE_ROOT F:\J18-ZaiJian\ACE_wrappers
TAO_ROOT %ACE_ROOT%\TAO
MPC_ROOT %ACE_ROOT%\MPC
DDS_ROOT F:\J18-ZaiJian\OpenDDS-3.14
LD_LIBRARY_PATH %DDS_ROOT%\lib
PERL5LIB %DDS_ROOT%\bin\PerlDDS
2)Path變量
在Path中添加:中添加:
%ACE_ROOT%\lib
%ACE_ROOT%\bin
%DDS_ROOT%\lib
%DDS_ROOT%\bin
3)可以檢查下環境變量是否全部設置好了.
命令行執行:%DDS_ROOT%\setenv.cmd //設置并顯示所有的環境變量配置
環境變量設置為下面路徑大體如下:
:: OpenDDS configure script: configure
set ACE_ROOT=F:\J18-ZaiJian\ACE_wrappers
set MPC_ROOT=F:\J18-ZaiJian\ACE_wrappers\MPC
set PATH=%PATH%;F:\J18-ZaiJian\ACE_wrappers\bin;F:\J18-ZaiJian\OpenDDS-3.14\bin;F:\J18-ZaiJian\ACE_wrappers\lib;F:\J18-ZaiJian\OpenDDS-3.14\lib
set TAO_ROOT=F:\J18-ZaiJian\ACE_wrappers\TAO
set DANCE_ROOT=unused
set CIAO_ROOT=unused
set DDS_ROOT=F:\J18-ZaiJian\OpenDDS-3.14
第三步:安裝ACE+TAO
為什么要安裝ACE+TAO?------------------------------------------
ACE 全稱 ADAPTIVE Communication Environment(自適應的網絡通訊環境),是一個面向對象、非常優秀的用來構建高性能、跨平臺的網絡應用開發的工具包,
它實現了通信軟件的基本設計模式。TAO是基于ACE的對CORBA的一種實現。
簡單的說:OpenDDS基于ACE+TAO。
0.打開VS2017的開發人員命令提示符,大致在菜單的如下位置:
a)順便了解:工程文件 和 VS版本 對應關系;
b)再次確定是否已經完成設置環境變量(系統變量):
ACE_ROOT 值 F:\J18-ZaiJian\ACE_wrappers
TAO_ROOT 值 %ACE_ROOT%\TAO
Path中添加: %ACE_ROOT%\lib; %ACE_ROOT%\bin
在F:\J18-ZaiJian\ACE_wrappers\ace,新建一個文件config.h,并添加內容:
1.編譯ACE
進入到%ACE_ROOT%目錄下,可以看到有幾個類似于ACE_vs2017.sln的文件,因為我們安裝的是VS2017,所以我們執行的目標文件是:ACE_vs2017.sln
打開VS2017的開發人員命令提示符執行:
參數:
Configuration=Debug代表Debug編譯,Configuration=Release代表Release編譯;
Platform=x64代表強制編譯為64位版本;
/m:2 代表使用兩個線程并行編譯,這個數越大編譯的越快.我建議這個數比CPU核數少一個比較好。當然如果超過CPU核數是沒有意義
**
兩種方法編譯ACE( 編譯時長大概為半個小時或更久 )
**
法1:如下圖ACE_wrappers目錄下會有許多VS工程目錄,由VS打開對應版本的.sln文件(雙擊文件),開始編譯;
法2:利用 VS命令行進行編譯
命令:msbuild ACE_vs2017.sln /p:Configuration=Debug /p:platform=x64 /maxcpucount:8 > build_ace_debug.log
注意 替換命令中 ACE_vs2017.sln 選項;編譯過程無任何提示,完成后會在目錄下生成 build_ace_debug.log 日志文件,一般不會產生錯誤。
2.編譯TAO( 編譯時長大概為一個小時或更久 )
繼續使用剛才命令行,切換到 F:\J18-ZaiJian\ACE_wrappers\TAO 目錄下,可以看到有幾個類似于TAO_ACE_vs2017.sln的文件,編譯方法同上,下面是使用命令行編譯TAO的方法:
命令:msbuild TAO_ACE_vs2017.sln /p:Configuration=Debug /p:platform=x64 /maxcpucount:8 > build_tao_debug.log
編譯過程無任何提示,完成后會在目錄下生成 build_tao_debug.log 日志文件,一般不會產生錯誤。
精簡命令:msbuild TAO_ACE_vs2017.sln /p:Configuration=Debug;Platform=x64 /m:2
這里面的Configuration、Platform必須和編譯ACE_vs2017.sln的一致。
**
第四步:安裝OpenDDS
**
下載地址:http://opendds.org/
1.下載最新版本
解壓到 F:\J18-ZaiJian\OpenDDS-3.14
2.再次確認已經添加環境變量(系統變量)
添加 DDS_ROOT 值 F:\J18-ZaiJian\OpenDDS-3.14
Path 中添加 %DDS_ROOT%\lib;%DDS_ROOT%\bin
3.使用vs開發者命令行(上面使用的命令行工具),切換到F:\J18-ZaiJian\OpenDDS-3.14文件夾,
命令:cd %dds_root%
//此命令也可換成cd F:\J18-ZaiJian\OpenDDS-3.14
命令:perl configure
4.這里也許會出現錯誤,提示VS版本不對,按照提示找到對應文件(configure.sh文件)對應行修改即可[工程文件與VS版本對應見上表]
1)找到如下內容:
2)因為我們使用的是vs2017,所以將該內容替換成:
$opts{'compiler_version'} = "vs2017";5.修改完成以后,仍然使用VS2017的開發人員命令提示符,進入%DDS_ROOT%目錄,再次執行:
命令: perl configure
執行后成功之后會在當前目錄下生成了DDS_no_tests.sln(即VS工程文件)和setenv.cmd兩個文件.
6.在命令行執行setenv.cmd設置環境變量。
7.兩種方式進行最后一步編譯:
a)第一種,繼續輸入命令 進行編譯:
編譯時長大概一個小時或更久,完成后會在目錄下生成 build_dds_debug.log 日志文件,一般不會產生錯誤。
b)第二種,雙擊DDS_no_tests.sln直接用vs2017打開進行編譯。
注意vs編譯前,記得配置一下vs2017.
PS:上述這個圖只是舉個例子,不是本項目。用來幫助理解提示我的VS2017傻瓜操作:
在1處右鍵打開屬性,配置屬性 > VC++目錄 > 常規 > 包含目錄中添加F:\J18-ZaiJian\OpenDDS-3.14F:\J18-ZaiJian\ACE_wrappersF:\J18-ZaiJian\ACE_wrappers\TAO 在5處選擇Debug或Release; 在6處選擇平臺位數; 在7處執行解決方案目標; 在8處生成解決方案或重新生成解決方案,即開始編譯。8.[特別注意]當時為了編譯能夠成功,我做了如下的傻瓜操作,希望能給你幫助.
1)雙擊DDS_no_tests.sln即可用vs2017打開,會發現 vs2017對應的解決方案DDS_no_tests.sln有31個項目. 2)點擊每一個項目名稱,右鍵打開屬性,配置屬性 > VC++目錄 > 常規 > 包含目錄中添加F:\J18-ZaiJian\OpenDDS-3.14F:\J18-ZaiJian\ACE_wrappersF:\J18-ZaiJian\ACE_wrappers\TAO 3)vs2017點擊項目(p)\重定向項目\選擇windows SDK版本:10.0.17763.0\確認\ 4)vs2017點擊生成(B)\生成解決方案 5)命令執行驗證一下vs2017編譯怎么樣了: 命令:msbuild DDS_no_tests.sln /p:Configuration=Debug;Platform=x64 /m:2## 9.驗證
切換到 %DDS_ROOT%\example\DCPS\Messenger_Imr 目錄
運行:
如果提示 test PASSED 則表示成功,
OPenDDS環境至此搭建完成。
總結
以上是生活随笔為你收集整理的OpenDDS环境搭建-Windows 10的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《DirectX 9.0 3D游戏开发编
- 下一篇: 《Linux多线程服务端编程——使用mu