Fast DDS library windows 下源碼編譯(cmake)

目錄

編譯環境:

編譯需要的源碼文件:

Fast DDS編譯:

注意事項:

參考文檔:

基于Fast DDS 的源碼來編譯相關的庫,然后可以通過python 來調用庫文件實現dds 數據通信,本文就詳細的介紹編譯過程。

編譯環境:

PC:windows ?11,64 位操作系統, 基于Intel? x64 的處理器

cmake version 3.26.0-rc1

java 11.0.23 2024-04-16 LTS(編譯Fast-DDS-Gen需要)

編譯器:Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.34.31933/bin/Hostx64/x64/cl.exe

Gradle 7.5(編譯Fast-DDS-Gen需要)

編譯需要的源碼文件:
  1. foonathan_memory_vendor :
  2. Fast CDR:
  3. Fast DDS:

eProsima Fast dds 在Windows環境中從源安裝時具有以下依賴關系:

  • Asio and TinyXML2 libraries

  • OpenSSL

下載軟件包然后通過指令來安裝:

choco install -y -s <PATH_TO_DOWNLOADS> asio tinyxml2choco install -y openssl

安裝的文件都在下面這個路徑下

C:\ProgramData\chocolatey\lib?

安裝完成之后可以通過指令來檢驗是否安裝成功:

Fast DDS編譯:

先在D:\DDS 下創建一個文件夾Fast-DDS? ,所有的編譯源碼都在Fast-DDS 文件夾下面,install是我們編譯出來的文件的安裝路徑。

  • 編譯Foonathan Memory
git clone https://github.com/eProsima/foonathan_memory_vendor.git
cd foonathan_memory_vendor
mkdir build 
cd build
cmake -DCMAKE_INSTALL_PREFIX=D:/DDS/Fast-DDS/install ..
cmake --build . --config Release --target install

?D:\DDS\Fast-DDS\install\share 下面能看到編譯出來的文件

  • ?編譯Fast CDR
git clone --recursive https://github.com/eProsima/Fast-CDR.git
cd Fast-CDR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=D:/DDS/Fast-DDS/install ..
cmake --build . --config Release --target install

編譯成功如下圖 會把相關的文件寫入到install文件夾中

  • 編譯Fast DDS

? ? ? 編譯的時候要注意 老版本的源碼是?RTPS,大家在使用源碼的時候要注意版本。

git clone --recursive https://github.com/eProsima/Fast-DDS.git
cd Fast-DDS
mkdir build 
cd buildcmake -DCMAKE_INSTALL_PREFIX=D:/DDS/Fast-DDS/install ..
cmake --build . --target install

編譯完成后所有的dll 和文件都在install 文件下面

編譯完成后可以通過FASTDDS-Python? 來測試dll 編譯后是否可以使用

注意事項:
  1. 編譯的軟件版本需要保持一致, foonathan_memory_vendor,Fast CDR ,Fast DDS 如果有的是debug ,有的是release ,最后編譯Fast DDS 的時候會出現無法找到lib的錯誤。
  2. 編譯的dll 后需要設置環境變量最后再編譯Fast DDS
參考文檔:

4. Windows installation from sources — Fast DDS 2.14.2 documentation?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/45075.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/45075.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/45075.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

機器學習筑基篇,容器調用顯卡計算資源,Ubuntu 24.04 快速安裝 NVIDIA Container Toolkit!...

[ 知識是人生的燈塔,只有不斷學習,才能照亮前行的道路 ] Ubuntu 24.04 安裝 NVIDIA Container Toolkit 什么是 NVIDIA Container Toolkit? 描述:NVIDIA Container Toolkit(容器工具包)使用戶能夠構建和運行 GPU 加速的容器,該工具包括一個容器運行時庫和實用程序,用于自動…

石油巨頭受沖擊!埃克森美孚、BP接連發出盈利預警

KlipC報道&#xff1a;近日&#xff0c;BP&#xff08;英國石油&#xff09;預計其第二季度將面臨10億至20億美元的減值費用&#xff0c;并發出警告稱其煉油利潤率“大幅下降”&#xff0c;石油交易收益預計出現疲軟。消息公布后&#xff0c;其股價下跌超4%。 由于中間餾分油利…

JavaScript(8)——函數

函數 function,是被設計執行特定任務的代碼塊。 函數可以把具有相同或相似邏輯的代碼包裹起來&#xff0c;通過函數調用執行這些代碼&#xff0c;這么做的優勢有利于精簡代碼方便復用。類似于alert(),prompt()和console.log()&#xff0c;這些都是js函數&#xff0c;不過已經…

STL(一)

書寫形式&#xff1a;string (const string& str, size_t pos, size_t len npos); 舉例&#xff1a; int main(){ string url("https://mp.csdn.net/mp_blog/creation/editor?spm1000.2115.3001.4503") string sub1(url,0,5);//從下標為0開始向后5個字符&…

如何在 Python 中創建一個類似于 MS 計算器的 GUI 計算器

問題背景 假設我們需要創建一個類似于微軟計算器的 GUI 計算器。這個計算器應該具有以下功能&#xff1a; 能夠顯示第一個輸入的數字。當按下運算符時&#xff0c;輸入框仍顯示第一個數字。當按下第二個數字時&#xff0c;第一個數字被替換。 解決方案 為了解決這個問題&am…

華為OD機考題(HJ108 求最小公倍數)

前言 經過前期的數據結構和算法學習&#xff0c;開始以OD機考題作為練習題&#xff0c;繼續加強下熟練程度。 描述 正整數A和正整數B 的最小公倍數是指 能被A和B整除的最小的正整數值&#xff0c;設計一個算法&#xff0c;求輸入A和B的最小公倍數。 數據范圍&#xff1a;1≤…

Spring中的適配器模式和策略模式

1. 適配器模式的應用 1.1適配器模式&#xff08;Adapter Pattern&#xff09;的原始定義是&#xff1a;將一個類的接口轉換為客戶期望的另一個接口&#xff0c;適配器可以讓不兼容的兩個類一起協同工作。 1.2 AOP中的適配器模式 在Spring的AOP中&#xff0c;使用Advice&#…

【北京迅為】《i.MX8MM嵌入式Linux開發指南》-第一篇 嵌入式Linux入門篇-第十九章 Linux 工具之make 工具和 makefile 文件

i.MX8MM處理器采用了先進的14LPCFinFET工藝&#xff0c;提供更快的速度和更高的電源效率;四核Cortex-A53&#xff0c;單核Cortex-M4&#xff0c;多達五個內核 &#xff0c;主頻高達1.8GHz&#xff0c;2G DDR4內存、8G EMMC存儲。千兆工業級以太網、MIPI-DSI、USB HOST、WIFI/BT…

集群管理腳本

虛擬機集群管理腳本 文章目錄 虛擬機集群管理腳本一、遠程調用腳本(remote_call.sh)二、遠程復制目錄腳本(remote_copy.sh) 一、遠程調用腳本(remote_call.sh) 如果有傳命令參數&#xff0c;則執行該命令&#xff1b;如果沒有傳命令參數&#xff0c;則不執行。 #!/bin/bashcm…

【嵌入式Linux】<知識點> GDB調試(更新中)

文章目錄 前言 一、GDB調試預備工作 二、GDB的啟動與退出 三、GDB中查看源代碼 四、GDB斷點操作 五、GDB調試指令 前言 在專欄【嵌入式Linux】應用開發篇_Linux打工仔的博客中&#xff0c;我們已經寫了大量的源程序。但是在調試這些程序時我們都是通過printf大法和肉眼除…

評估指標:精確率(Precision)、召回率(Recall)、F1分數(F1 Score)

評估指標&#xff1a;精確率&#xff08;Precision&#xff09;、召回率&#xff08;Recall&#xff09;、F1分數&#xff08;F1 Score&#xff09; 前言相關介紹1. 準確率&#xff08;Accuracy&#xff09;2. 精確率&#xff08;Precision&#xff09;3. 召回率&#xff08;Re…

Cadence23打開與關閉飛線,修改位號絲印大小

打開與關閉所有飛線&#xff1a; 顯示部分飛線&#xff1a; 單獨顯示網絡飛線尤為好用&#xff0c;點擊上圖中的網絡&#xff0c;之后鼠標點擊器件中你想高亮的網絡即可單獨打開部分飛線。 這里的關閉部分網絡的飛線也很好用&#xff0c;可以臨時關閉討厭的GND飛線&#xff1a…

掌握Postman的API請求模板:一鍵生成,效率倍增

&#x1f4d8; 掌握Postman的API請求模板&#xff1a;一鍵生成&#xff0c;效率倍增 Postman是API開發和測試的瑞士軍刀&#xff0c;而其請求模板功能更是提升工作效率的利器。API請求模板允許用戶定義一組可重用的請求配置&#xff0c;從而快速生成和發送API請求。本文將深入…

virturalBox+K8S部署jaeger-all-in-one

pod的yaml如下&#xff1a;這里使用的是主機host模式 apiVersion: apps/v1 kind: Deployment metadata:name: jaegerlabels:app: jaeger spec:replicas: 1selector:matchLabels:app: jaegertemplate:metadata:labels:app: jaegerspec:hostNetwork: truecontainers:- name: jae…

TF卡病毒是什么?如何防范和應對?

在存儲芯片及存儲卡領域&#xff0c;TF卡病毒是一個備受關注的話題。在本文中&#xff0c;拓優星辰將詳細解釋TF卡病毒的含義、來源以及如何防范和應對這一問題&#xff0c;幫助客戶更好地了解和處理TF卡病毒的風險。 1. TF卡病毒的含義 TF卡病毒是指針對TF存儲卡&#xff08;T…

05:定時器中斷

中斷 1、定時器T0中斷2、案例&#xff1a;通過定時器T0中斷來實現燈間隔1s亮滅 1、當中央處理機CPU正在處理某件事的時候外界發生了緊急事件請求&#xff0c;要求CPU暫停當前的工作&#xff0c;轉而去處理這個緊急事件&#xff0c;處理完以后&#xff0c;再回到原來被中斷的地方…

安裝lap和cython_bbox失敗了很多次!!!終于被我發現了!

先說 lap 試了很多種方式&#xff0c;pip install lap / conda install -c conda-forge lap … 全失敗了后面發現 lap 不支持 python > 3.9 的版本使用 pip install lapx 成功&#xff01; cython_bbox 更難了 一直提示缺少MicroSoft C 14.0 … 大家有需要自行下載&#x…

[PaddlePaddle飛槳] PaddleDetection-通用目標檢測-小模型部署

PaddleDetection的GitHub項目地址 推薦環境&#xff1a; PaddlePaddle > 2.3.2 OS 64位操作系統 Python 3(3.5.1/3.6/3.7/3.8/3.9/3.10)&#xff0c;64位版本 pip/pip3(9.0.1)&#xff0c;64位版本 CUDA > 10.2 cuDNN > 7.6pip下載指令&#xff1a; python -m pip i…

面向本科生的智能品牌傳播策略優化

面向本科生的智能品牌傳播策略優化 一、引言 在數字化時代,品牌傳播已不再是簡單的信息傳遞,而是需要借助智能技術實現精準、高效、創新的傳播策略。作為本科畢業生,選擇“面向本科生的智能品牌傳播策略優化實踐”作為研究課題,不僅有助于深入理解品牌傳播的理論知識,還…

【數據結構】一文了解七大排序算法

文章目錄 前言一.直接插入排序插入排序思想插入排序代碼實現插入排序總結 二.希爾排序希爾排序思想希爾排序代碼實現希爾排序總結 三.選擇排序選擇排序思想選擇排序代碼實現選擇排序總結 四.堆排序堆排序思想堆排序代碼實現堆排序總結 五、冒泡排序冒泡排序思想冒泡排序代碼實現…