当前位置: 首页 > 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.jsqmd.com/news/30411/

相关文章:

  • 老化车
  • Android Studio 2025.2.1 汉化中文包临时解决方案
  • Markdown 学习训练
  • jmeter设置中文页面的两种方法
  • win10 下运行aoe2,报错,应用程序无法正常启动 0xc000022
  • Python生成器表达式详解(含与列表推导式核心对比、别名探讨)
  • 在Fiddler中模拟网络中断,返回500错误的过程
  • P4198 楼房重建 分析
  • 构建企业级AI提示词攻击防御体系的实战指南-2025年
  • 矩阵的秩
  • Python列表推导式完全指南
  • Rockchip RK3588 - Mali-G610 GPU驱动(mesa+Panthor)
  • AI浪潮下的学习与就业:机遇还是陷阱?
  • win10安装MongoDB 3.0.15 Community
  • auto
  • 一行“优雅”代码踩爆3x3矩阵:Python列表乘法的“共享引用”陷阱
  • 写给创业者新手:什么是MAU指标,什么是ARR、PMF
  • git不小心把本地从未提交过的贮藏的版本删掉了,如何恢复?
  • ffmpeg安装配置
  • 【C】 static用法
  • Python线程锁
  • 若依前端验证码的实现
  • 从O(n)到O(n):Python字符串拼接的效率陷阱与最佳实践
  • 实验4:MobileNet ShuffleNet - OUC
  • 模拟赛 31
  • CSP-S 2025 T3 小结
  • 第三十二篇
  • 2025年苏州AIGEO 优化服务商深度测评:TOP5 企业核心优势与实战案例对比
  • 使用 Docker Compose 轻松实现 INFINI Console 离线部署与持久化管理
  • 第6章 语句