当前位置: 首页 > news >正文

如何启用cycloneDDS的iceoryx

共享内存交换 — Eclipse Cyclone DDS,0.11.0

首先我们需要先下载安装iceoryx,因为cycloneDDS如果要使用共享内存传输是依赖于这个插件的。顺带一提,只有同一节点的不同进程间会使用到共享内存,cycloneDDS是根据如果发布者和订阅者的ip相同则使用共享内存。本次教程以安装iceoryx-2.0.6为例

eclipse-iceoryx/iceoryx: Eclipse iceoryx™ - true zero-copy inter-process-communication

先下载压缩包然后解压,我在这里遇到了一个小问题,如果使用finallshell这类软件上传到虚拟机,要注意文件的用户组。比方说我用root用户上传,然后在vscode里面使用普通用户的ssh连接,在修改文件时,就会出现权限问题

未能保存“***”: 无法写入文件”vscode-remote://ssh-remote…No Permissions(FileSystemError):Error:EACCES:permission denied ,open …

因为普通用户可能对root用户拥有的文件夹没有写权限,所以上传文件的时候用普通用户吧

iceoryx在解压之后,先安装必要的依赖包

sudo apt install cmake libacl1-dev libncurses5-dev pkg-config maven

编写编译的脚本程序build.sh

rm build
cmake -Bbuild -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=install -DBUILD_SHARED_LIBS=ON -Hiceoryx_meta
cmake --build build --config Debug --target install

-Bbuild:在和sh文件同级的目录下创建一个build文件夹,将所有编译的中间文件放进去

-DCMAKE_INSTALL_PREFIX:在和sh文件同级的目录下创建一个install文件夹,存放iceoryx编译出来的库文件

-DBUILD_SHARED_LIBS:启用动态库

编译的时候需要联网,iceoryx去gitclone其他的依赖,如cpptoml,如果克隆失败请打开梯子。

接下来在build目录下创建iox_config.toml这个文件,内容如下

[general]
version = 1[[segment]][[segment.mempool]]
size = 16448
count = 32768

之后直接运行iceoryx的可执行程序,注意更改路径

./iceoryx-2.0.6/build/iox-roudi -c ./iceoryx-2.0.6/build/iox_config.toml

第二步编译cycloneDDS

编译dds库的脚本build.sh

rm -rf build
rm -rf install
cmake -Bbuild -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=install -DENABLE_ICEORYX=On -DBUILD_EXAMPLES=On -DCMAKE_PREFIX_PATH=/home/lhj/Desktop/dds/iceoryx-2.0.6/install
cmake --build build --config Debug --target install

-DENABLE_ICEORYX:启用冰羚

-DCMAKE_PREFIX_PATH:设置冰羚的install库目录

编译helloworld buildHelloWorld.sh

cd examples/helloworld
rm -rf build
mkdir build
cd build
cmake -DCMAKE_PREFIX_PATH=/home/lhj/Desktop/dds/cyclonedds-master/install ..
cmake --build .

-DCMAKE_PREFIX_PATH:设置dds库目录

设置配置文件,创建cycloneDDS.xml

<?xml version="1.0" encoding="UTF-8" ?>
<CycloneDDS xmlns="https://cdds.io/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://cdds.io/config https://raw.githubusercontent.com/eclipse-cyclonedds/cyclonedds/master/etc/cyclonedds.xsd"><Domain Id="any"><General><Interfaces><!-- Specify the network interface by its address --><NetworkInterface address="192.168.116.130"/> 改成你自己的虚拟机ip<PubSubMessageExchange name="iox" library="psmx_iox" config="LOG_LEVEL=INFO;"/></Interfaces><AllowMulticast>false</AllowMulticast> <!-- Explicitly disable multicast --><MaxMessageSize>65500B</MaxMessageSize></General><Internal><Watermarks><WhcHigh>500kB</WhcHigh></Watermarks></Internal><Tracing><Verbosity>config</Verbosity> <!-- 最详细的日志 --><OutputFile>/home/lhj/Desktop/dds/cyclonedds-master/logs/cdds.log</OutputFile> <!-- 日志文件位置 --></Tracing></Domain>
</CycloneDDS>

————————————————
版权声明:本文为CSDN博主「桜SaKu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_73797171/article/details/148192578

http://www.zskr.cn/news/38960.html

相关文章:

  • 老化车
  • 在Fiddler中模拟网络中断,返回500错误的过程
  • 构建企业级AI提示词攻击防御体系的实战指南-2025年
  • 矩阵的秩
  • Python列表推导式完全指南
  • 如何启用cycloneDDS的iceoryx共享内存?(转载)
  • Rockchip RK3588 - Mali-G610 GPU驱动(mesa+Panthor)
  • auto
  • 写给创业者新手:什么是MAU指标,什么是ARR、PMF
  • 实验4:MobileNet ShuffleNet - OUC
  • 使用 Docker Compose 轻松实现 INFINI Console 离线部署与持久化管理
  • 第6章 语句
  • Modbus RTU 通信格式详解学习笔记
  • Selenium3+Python3 自动化项目项目实战day1
  • MarkDown初入
  • 英语_作文_8AU3_Curiosity
  • P7. TensorBoard的使用(一)
  • 如何从手机内部恢复数据?2025年9大最佳手机数据恢复软件
  • 如何将数据从 Mac 硬盘恢复数据到电脑:所有方法
  • Mac数据恢复:Mac 十大数据恢复软件详细评测
  • iPad照片、联系人、笔记恢复工具: iPad 数据恢复软件
  • A Rock N Roll Fantasy
  • 从损坏_格式化_删除的源中提取数据的 7 款数据恢复软件
  • andriod集成x5内核
  • CF2161 Pinely Round 5 (Div. 1 + Div. 2) 游记(VP)
  • 以太网交换技术
  • 2025-11-03 NOIP 模拟赛1 赛后总结
  • 以销定采是什么?为什么越来越重要?
  • 2025年优质少儿编程机构揭秘:提供国家等级测评+优质的课程体系+一站式赛考服务!
  • Modbus协议功能码详解学习笔记