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