提綱
1、概述
2、foonathan_memory_vendor
3、fast-cdr
4、fast-dds
5、編譯HelloWorldExample
6、安裝fast-dds-gen,使用IDL文件構建代碼
fastdds是干什么,就不重復說了。
操作系統(tǒng)是Ubuntu18.04
本次采用源碼編譯安裝,需要使用到以下的包:
1.foonathan_memory_vendor
2.fast-cdr
3.fast-dds
獲取foonathan_memory_vendor:
cd ~/Fast-DDS
git clone https://github.com/eProsima/foonathan_memory_vendor.git
mkdir foonathan_memory_vendor/build
cd foonathan_memory_vendor/build
cmake .. -DCMAKE_INSTALL_PREFIX=~/Fast-DDS/install -DBUILD_SHARED_LIBS=ON
cmake --build . --target install
獲取fast-cdr:
cd ~/Fast-DDS
git clone https://github.com/eProsima/Fast-CDR.git
mkdir Fast-CDR/build
cd Fast-CDR/build
cmake .. -DCMAKE_INSTALL_PREFIX=~/Fast-DDS/install
cmake --build . --target install
獲取fast-dds:
cd ~/Fast-DDS
git clone https://github.com/eProsima/Fast-DDS.git
mkdir Fast-DDS/build
cd Fast-DDS/build
cmake .. -DCMAKE_INSTALL_PREFIX=~/Fast-DDS/install
cmake --build . --target install
在編譯過程中cmake的版本會過低,18.04更新的cmake為3.10左右,fast-dds需要3.16以上
可以進入cmake官網下載相應版本,我采用的是 cmake-3.16.6.tar.gz
解壓后
cd cmake-3.16.6
./bootstrap
make
make install
如果本身的cmake版本很高,可以忽略這步。
如上,完成編譯安裝后需要添加環(huán)境:
gedit ~/.bashrc
export LD_LIBRARY_PATH=/home/mkt/Fast-DDS/install/lib
注意改成自己的路徑
編譯成功后開始測試fast-dds的helloworld
定位地址~/Fast-DDS/Fast-DDS-master/examples/cpp/dds/HelloWorldExample
cd ~/Fast-DDS/Fast-DDS/examples/cpp/dds/HelloWorldExample
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=~/Fast-DDS/install
make
獲得如下內容:
運行兩終端,分別執(zhí)行發(fā)布和訂閱
./DDSHelloWorldExample publisher
./DDSHelloWorldExample subscriber
先安裝依賴環(huán)境:
sudo apt install openjdk-8-jdk
參考官網執(zhí)行如下操作:
cd ~~/Fast-DDS/
git clone --recursive https://github.com/eProsima/Fast-DDS-Gen.git
cd Fast-DDS-Gen
gradle assemble #這一步會提示找不到gradle,所以執(zhí)行這一步之前要先安裝gradle
#輸出下面的信息,說明fast-dds-gen編譯成功了。
BUILD SUCCESSFUL in 13s
6 actionable tasks: 4 executed, 2 up-to-date
#最后配置fast-dds-gen的環(huán)境變量
gedit ~/.bashrc
export PATH=/home/mkt/Fast-DDS/Fast-DDS-Gen/scripts:$PATH
source /etc/profile
完成這些就可以使用fastddsgen來通過idl文件生成代碼,但是只生成源代碼還不夠,還需要寫cmakelist.txt。
fastddsgen Helloworld.idl
在新路徑下拷貝helloworld.idl,執(zhí)行上述命令,得到如下文件:
至此,fast-dds的基本編譯及使用就完成。但是對fastdds的學習來說,這是萬里長征的第一步,后續(xù)還需要做非常多的工作才能了解fastdds。
參考資料
1、https://blog.csdn.net/mkt123338702/article/details/125880446,這篇文章中有很多細節(jié)需要調整,但是文章沒有說明,需要自己摸索
2、https://bylee.blog.csdn.net/article/details/124705821,這篇文章主要是參考編譯idl。
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧