Fast DDS library windows 下源码编译(cmake)

news2024/9/19 0:01:26

目录

编译环境:

编译需要的源码文件:

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 tinyxml2

choco 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 build

cmake -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.coloradmin.cn/o/1919554.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

评估指标:精确率(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…

react学习——26react-redux实现求和案例(完整版)

1、目录结构 2、components/count/index.js import React, {Component} from "react"; export default class Count extends Component {//加法increment()>{const {value} this.selectNumthis.props.jia(Number(value))}//减法decrement()>{const {value} …

发行自己的ERC20代币

发行自己的代币 步骤1 从https://etherscan.io/tokens 查找一个代币 步骤2 复制其合约代码 步骤3 在remix中编译合约代码 步骤4 部署合约(需要提前安装Metamask, 并获取一些测试币), 这里Rinkeby测试为例 可以在 https://faucet.rinkeby.io/ 获取 Rinkeby的测试币 其中的…

关于delete和delete[ ]混用的未定义问题解释

我们知道delete用于释放一个动态空间&#xff0c;而delete[ ]用于释放多个动态空间&#xff0c;但是如果我们混用的话会导致什么问题&#xff1f;我在博客上看了许多文章&#xff0c;但不尽人意&#xff0c;因此写下这篇文章让你知其然知其所以然&#xff08;浅薄的解释&#x…

招采全流程电子化优势及重要功能环节(数智化招采系统)

招投标全流程电子化&#xff0c;是加速招标采购领域数字化转型、创新招标采购交易机制的重要举措。它在构建高效规范、公平竞争、充分开放的大市场环境中起着至关重要的作用。 招采电子化历史沿革 2013年2月&#xff0c;国家发展改革委等八部门发布了《电子招标投标办法》&am…

基于React 实现井字棋

一、简介 这篇文章会基于React 实现井字棋小游戏功能。 二、效果演示 三、技术实现 import {useEffect, useState} from "react";export default (props) > {return <Board/> }const Board () > {let initialState [[, , ], [, , ], [, , ]];const [s…

Linux C embed development (personal rveiew)

1. 如何快速去bring up bcm 的wifi chipset a. 首先的确认 编译的BSP profile b. 其次要先用 default 的kernel config 去编译 c. 现在我们的一些 PCIE/GPIO/driver 总线的设置 都在dts 中&#xff0c;有错就去改dts 2. BCM 的板子bring up 注意事项 a. fw: bcm…

网络基础:Vlan原理与配置

VLAN&#xff08;Virtual Local Area Network&#xff0c;虚拟局域网&#xff09;是一种将一个物理网络划分为多个逻辑子网的技术。它通过在网络交换机上配置&#xff0c;使得不同VLAN中的设备即使连接在同一个物理交换机上&#xff0c;也不能直接进行通信&#xff0c;从而实现…

无头单向非循环链表实现 and leetcode刷题

无头单向非循环链表实现 1. 单链表的模拟实现IList.java接口&#xff1a;MySingleList.java文件&#xff1a; 2. leetcode刷题2.1 获取链表的中间节点2.2 删除链表中所有值为value的元素2.3 单链表的逆置2.4 获取链表倒数第k个节点2.5 给定 x, 把一个链表整理成前半部分小于 x,…

Docker存储目录问题,如何修改Docker默认存储位置?(Docker存储路径、Docker存储空间)etc/docker/daemon.json

文章目录 如何更改docker默认存储路径&#xff1f;版本1&#xff08;没测试&#xff09;版本2&#xff08;可行&#xff09;1. 停止 Docker 服务&#xff1a;2. 创建新的存储目录&#xff1a;3. 修改 Docker 配置文件&#xff1a;4. 移动现有的 Docker 数据&#xff1a;5. 重新…

盲人出行体验攻略:蝙蝠避障,点亮前行的明灯

在繁华喧嚣的都市中&#xff0c;每一步都充满了未知与挑战&#xff0c;而对于盲人朋友们来说&#xff0c;出行更是一场无声的冒险。他们凭借着内心的勇气和坚韧的意志&#xff0c;在黑暗中摸索前行&#xff0c;每一步都承载着对生活的热爱与追求。今天&#xff0c;我们要深入探…

YOLOv8改进 | 注意力机制| 利用并行子网络构建深度较浅但性能卓越的网络【全网独家】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录 &#xff1a;《YOLOv8改进有效…

jdevelope安装

准备 1.jdk1.8&#xff08;已经安装不做记录&#xff09; 2.下载jdevelope安装包 3.安装包安装jdevelope开发工具 4.创建或导入项目 下载jdevelope安装包 官网下载地址&#xff1a;https://edelivery.oracle.com 安装包安装jdevelope开发工具 cmd管理员权限运行安装脚本…

新质生产力赛道核心解读,机械制造何以“向智向新”

机械行业&#xff0c;国民经济的坚实基石与核心驱动力&#xff0c;为各行各业提供高效生产工具。立于产业链的中游&#xff0c;向上游紧密连接着高精尖的核心零部件制造商与基础原材料供应商&#xff1b;向下游&#xff0c;则广泛渗透并深刻影响着基础设施建设、交通运输&#…

7.11日学习打卡----初学Redis(六)

7.11日学习打卡 目录&#xff1a; 7.11日学习打卡一. redis事务事务的概念与ACID特性Redis事务三大特性Redis事务执行的三个阶段Redis事务基本操作 二. redis集群主从复制主从复制环境搭建主从复制原理剖析 哨兵监控哨兵监控环境搭建哨兵工作原理剖析 故障转移Cluster模式Clust…

如何用脉购CRM健康档案管理系统显著提升用户粘性与忠诚度

如何用脉购CRM健康档案管理系统显著提升用户粘性与忠诚度 脉购CRM健康档案管理系统以其创新的健康管理理念和先进的技术手段&#xff0c;为医疗机构和用户之间建立了一座高效的沟通桥梁。通过该系统&#xff0c;用户的健康档案得到了全面而细致的管理&#xff0c;不仅提高了医…

Node多版本管理器NVM安装使用

背景 有的时候开发前端项目需要用到不同版本的nodejs环境&#xff0c;此时就是需要有一个版本管理工具可以灵活的切换node版本&#xff0c;方便维护不同的开发环境 node版本管理工具 nvm工具介绍 安装node很方便&#xff0c;只需要一条命令可以轻松切换node版本可以多版本n…

MyBatis框架学习笔记(三):MyBatis重要文件详解:配置文件与映射文件

1 mybatis-config.xml-配置文件详解 1.1 说明 &#xff08;1&#xff09;mybatis 的核心配置文件(mybatis-config.xml)&#xff0c;比如配置 jdbc 连接信息&#xff0c;注册 mapper 等等都是在这个文件中进行配置,我们需要对这个配置文件有详细的了解 &#xff08;2&#x…

4.感知机

感知机 ​ 给定输入 x x x&#xff0c;权重 w w w&#xff0c;和偏移 b b b,感知机输出&#xff1a; KaTeX parse error: Unknown column alignment: o at position 16: \begin{array} o̲ \sigma(<w,x>… 或者是二分类&#xff1a;-1或1 Expected node of symbol gro…

全网最适合入门的面向对象编程教程:14 类和对象的 Python 实现-类的静态方法和类方法,你分得清吗?

全网最适合入门的面向对象编程教程&#xff1a;14 类和对象的 Python 实现-类的静态方法和类方法&#xff0c;你分得清吗&#xff1f; 摘要&#xff1a; 本文主要介绍了Python中类和对象中的类方法和静态方法&#xff0c;以及类方法和静态方法的定义、特点、应用场景和使用方…