<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[chamu99的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/chamu99</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; chamu99]]></copyright><item><title><![CDATA[C++ 的std::next]]></title><link>https://blog.youkuaiyun.com/chamu99/article/details/156850401</link><guid>https://blog.youkuaiyun.com/chamu99/article/details/156850401</guid><author>chamu99</author><pubDate>Mon, 12 Jan 2026 10:15:30 +0800</pubDate><description><![CDATA[是 C++ 标准库中的一个函数模板，用于获取一个迭代器在当前位置向前移动指定距离后的新迭代器。它不会修改原始迭代器，而是返回一个新的迭代器。: it: 原始迭代器。与 std::advance 不同，std::next 不会修改传入的迭代器。: 对于随机访问迭代器，复杂度为 O(1)。对于其他类型的迭代器（如单向或双向迭代器），复杂度为 O(n)。，可以方便地在不改变原始迭代器的情况下获取新的位置，非常适合需要保持原始状态的场景。: 当需要基于现有迭代器计算新位置时使用，而不想改变原始迭代器。]]></description><category></category></item><item><title><![CDATA[C++ 的可调用对象]]></title><link>https://blog.youkuaiyun.com/chamu99/article/details/156752439</link><guid>https://blog.youkuaiyun.com/chamu99/article/details/156752439</guid><author>chamu99</author><pubDate>Mon, 12 Jan 2026 09:46:04 +0800</pubDate><description><![CDATA[(3) lambda 表达式：就是匿名函数，普通的函数在使用前需要找个地方将这个函数定义，于是 C++提供了 lambda 表达式，需要函数时直接在需要的地方写一个 lambda 表达式，省去了定义函数的过程，增加开发效率。是一个通用的可调用对象包装器，可以存储任何可调用对象，包括普通函数、函数指针、函数对象和 lambda 表达式。(2) 仿函数：具有operator()函数的类对象，此时类对象可以当做函数使用，因此称为仿函数。(1) 函数：函数自然可以调用()运算符，是最典型的可调用对象。]]></description><category></category></item><item><title><![CDATA[C++ 中的 std::bind]]></title><link>https://blog.youkuaiyun.com/chamu99/article/details/156849449</link><guid>https://blog.youkuaiyun.com/chamu99/article/details/156849449</guid><author>chamu99</author><pubDate>Mon, 12 Jan 2026 09:39:17 +0800</pubDate><description><![CDATA[是 C++11 引入的一个函数模板，用于创建一个新的可调用对象，将函数或其他可调用实体与部分参数绑定在一起。它的主要作用是通过参数绑定和重组，生成一个新的函数对象，从而实现更灵活的函数调用。是 C++11 提供的一种强大的工具，用于函数绑定和参数重组。：可以将函数的部分参数固定为特定值，生成一个新的可调用对象。支持多种可调用对象（普通函数、成员函数、函数对象等）。，Lambda 表达式的语法更加简洁，且支持完美转发。：支持将类的成员函数绑定到具体对象或对象指针上。上，生成了一个新的可调用对象。]]></description><category></category></item><item><title><![CDATA[关于编译-__declspec(dllexport)的使用场景]]></title><link>https://blog.youkuaiyun.com/chamu99/article/details/156190283</link><guid>https://blog.youkuaiyun.com/chamu99/article/details/156190283</guid><author>chamu99</author><pubDate>Tue, 23 Dec 2025 11:34:51 +0800</pubDate><description><![CDATA[dllexport的使用场景：仅在 Windows 平台编译 DLL 时，标记需要对外暴露的函数 / 类，是导出符号的核心方式；和编译器的关系：强相关 —— 仅 MSVC/MinGW-w64（Windows 版）支持，非 Windows 编译器不认识，必须用屏蔽；配套最佳实践：用区分 “编译 DLL” 和 “使用 DLL”，分别映射为dllexport和dllimport，兼顾导出和导入优化；跨平台注意：非 Windows 平台需替换为对应编译器的导出扩展（如 GCC 的。]]></description><category></category></item><item><title><![CDATA[Qt6中文路径]]></title><link>https://blog.youkuaiyun.com/chamu99/article/details/153976294</link><guid>https://blog.youkuaiyun.com/chamu99/article/details/153976294</guid><author>chamu99</author><pubDate>Mon, 27 Oct 2025 17:26:18 +0800</pubDate><description><![CDATA[在后续loadFile函数中，要使用到std::open函数进行打开文件，但是由于编码不同，当路径中存在中文的时候，就会报错；]]></description><category></category></item><item><title><![CDATA[类外实现纯虚常量成员函数]]></title><link>https://blog.youkuaiyun.com/chamu99/article/details/153331931</link><guid>https://blog.youkuaiyun.com/chamu99/article/details/153331931</guid><author>chamu99</author><pubDate>Wed, 15 Oct 2025 16:54:54 +0800</pubDate><description><![CDATA[严格匹配基类接口、明确重写意图、遵守 const 承诺。仅能在非抽象子类中实现，基类中禁止实现；函数签名（返回类型、参数、const）必须与基类完全一致；推荐使用override关键字触发编译器检查；访问权限不能严于基类；实现位置必须在子类完整声明之后；不得在实现中修改成员变量或调用非 const 函数。遵循这些规则可确保代码符合多态设计预期，避免编译错误和逻辑隐患。]]></description><category></category></item><item><title><![CDATA[FreeCAD编译RelWithDebInfo模式]]></title><link>https://blog.youkuaiyun.com/chamu99/article/details/150443183</link><guid>https://blog.youkuaiyun.com/chamu99/article/details/150443183</guid><author>chamu99</author><pubDate>Sat, 16 Aug 2025 11:28:50 +0800</pubDate><description><![CDATA[Debug模式的就不要尝试了，编不出来，退而求其次，编译RelWithDebInfo模式，需要设置输出路径为默认的上一级。3.1 设置FREECAD_LIBPACK_DIR的值为Libpack解压后的路径。正常情况就可以configure了，如果中间有报错，就设置相应的路径。1.1 使用教程文档方法，先fork再clone。4.编译RelWithDebInfo模式。3.2 设置拷贝库相关的选项全为ON。1.2 直接从官方库clone。2.下载Libpack。1.clone 代码。然后generate。]]></description><category></category></item><item><title><![CDATA[C++默认构造函数被隐式删除]]></title><link>https://blog.youkuaiyun.com/chamu99/article/details/148587423</link><guid>https://blog.youkuaiyun.com/chamu99/article/details/148587423</guid><author>chamu99</author><pubDate>Wed, 11 Jun 2025 15:39:38 +0800</pubDate><description><![CDATA[在 C++ 中，struct F的默认构造函数F::F()被隐式删除，主要与类中包含的和有关。int& ref当类同时包含和时，默认构造函数需要同时满足两者的初始化要求，但默认构造函数无法提供任何初始化逻辑，因此会被编译器隐式删除。]]></description><category></category></item><item><title><![CDATA[指针的引用 *&]]></title><link>https://blog.youkuaiyun.com/chamu99/article/details/146564099</link><guid>https://blog.youkuaiyun.com/chamu99/article/details/146564099</guid><author>chamu99</author><pubDate>Thu, 27 Mar 2025 16:12:23 +0800</pubDate><description><![CDATA[其中有一个错误，dangling_modifyPointerReference函数中产生了悬空指针，因为newValue只是一个局部变量，退出函数的时候，指针指向的内容已经没有了，需要在栈上创建一个变量，避免悬空指针的产生；函数的参数使用指针的引用，可以在函数中修改传入的指针的指向；]]></description><category></category></item><item><title><![CDATA[VScode cl配置]]></title><link>https://blog.youkuaiyun.com/chamu99/article/details/146563711</link><guid>https://blog.youkuaiyun.com/chamu99/article/details/146563711</guid><author>chamu99</author><pubDate>Thu, 27 Mar 2025 16:08:08 +0800</pubDate><description><![CDATA[task.json`  相当于使用powershell 执行cl.exe，然后添加上一些参数；launch.json可以通过运行-添加配置-选择cl来生成；可以使用shift+ctrl+b来运行。]]></description><category></category></item><item><title><![CDATA[win11安装wsl2]]></title><link>https://blog.youkuaiyun.com/chamu99/article/details/144167959</link><guid>https://blog.youkuaiyun.com/chamu99/article/details/144167959</guid><author>chamu99</author><pubDate>Sun, 01 Dec 2024 12:50:22 +0800</pubDate><description><![CDATA[安装wsl2中的Ubuntu22.04版本。]]></description><category></category></item><item><title><![CDATA[PX4开源项目中遇到的问题]]></title><link>https://blog.youkuaiyun.com/chamu99/article/details/135508130</link><guid>https://blog.youkuaiyun.com/chamu99/article/details/135508130</guid><author>chamu99</author><pubDate>Wed, 10 Jan 2024 17:05:00 +0800</pubDate><description><![CDATA[依据上面博客更新了empty的版本，解决了；首先创建python虚拟环境，克隆项目；编译的时候，发现各种依赖没有，先按照。]]></description><category></category></item><item><title><![CDATA[ROS导航]]></title><link>https://blog.youkuaiyun.com/chamu99/article/details/135118423</link><guid>https://blog.youkuaiyun.com/chamu99/article/details/135118423</guid><author>chamu99</author><pubDate>Wed, 20 Dec 2023 21:57:23 +0800</pubDate><description><![CDATA[odometry source使用的方法是计算里程计走的距离和方向，估计自己的位置，因为odome try的位移是一个向量，带有距离和方向，从而能计算出机器人和原点的位置信息；而local_planner局部路径规划依赖于local_castmap本地代价地图（传感器实时感知出来的小范围地图），可以实时感知动态的障碍物，能够躲避；amcl + sensor transforms利用机器人身上的传感器信息和地图中的特征点进行匹配，然后确定自己的位置；发布消息给地盘，进行运动；3.路径规划move_base。]]></description><category></category></item><item><title><![CDATA[ROS2仿真问题]]></title><link>https://blog.youkuaiyun.com/chamu99/article/details/135039755</link><guid>https://blog.youkuaiyun.com/chamu99/article/details/135039755</guid><author>chamu99</author><pubDate>Sat, 16 Dec 2023 23:34:13 +0800</pubDate><description><![CDATA[如此看来，使用ROS2中gazebo仿真，无法使用VMware17pro的3D加速，因为打开3D加速，OpenGL的版本就变低了，不满足gazebo的要求；暂时没有找到解决办法；查看OpenGL版本，先安装sudo apt install mesa-utils。编译完成之后出现界面然后闪退，前面开了3D加速，使用的是虚拟机；再执行glxinfo | grep version。这篇博客说是重新安装显卡驱动；]]></description><category></category></item><item><title><![CDATA[ROS笔记]]></title><link>https://blog.youkuaiyun.com/chamu99/article/details/135003840</link><guid>https://blog.youkuaiyun.com/chamu99/article/details/135003840</guid><author>chamu99</author><pubDate>Thu, 14 Dec 2023 22:43:52 +0800</pubDate><description><![CDATA[在节点所在文件夹a01_basic_com_cpp下新建srv文件夹，]]></description><category></category></item><item><title><![CDATA[设备树文件怎么配置]]></title><link>https://blog.youkuaiyun.com/chamu99/article/details/134930853</link><guid>https://blog.youkuaiyun.com/chamu99/article/details/134930853</guid><author>chamu99</author><pubDate>Mon, 11 Dec 2023 16:44:40 +0800</pubDate><description><![CDATA[GPT生成，不保真
设备树（Device Tree）是一种描述硬件信息的树状数据结构，通常用于描述嵌入式系统中的硬件组件和连接。在Linux内核中，设备树文件用于传递硬件信息给内核，以便正确识别和初始化硬件设备。对于雷达驱动的移植，设备树文件的配置至关重要。]]></description><category></category></item><item><title><![CDATA[PX4编译报错]]></title><link>https://blog.youkuaiyun.com/chamu99/article/details/134900938</link><guid>https://blog.youkuaiyun.com/chamu99/article/details/134900938</guid><author>chamu99</author><pubDate>Sat, 09 Dec 2023 23:08:26 +0800</pubDate><description><![CDATA[报错如下，其实前面也这样报错了，但是没有想到是qt库的原因，找到文件夹/usr/lib/x86_64-linux-gnu/发现有libEGL.so.1，但是没有libEGL.so。命令：sudo ln /usr/lib/x86_64-linux-gnu/libEGL.so.1 /usr/lib/x86_64-linux-gnu/libEGL.so。想到是不是PX4版本的问题，前面在ubuntu22.04上使用的master版本的编译没有问题，20.04版本可能不能使用最新的？还是报错，具体错误忘记记录了。]]></description><category></category></item><item><title><![CDATA[Ubuntu根目录扩容]]></title><link>https://blog.youkuaiyun.com/chamu99/article/details/134897635</link><guid>https://blog.youkuaiyun.com/chamu99/article/details/134897635</guid><author>chamu99</author><pubDate>Sat, 09 Dec 2023 17:18:05 +0800</pubDate><description><![CDATA[方法是通过U盘进入试用Ubuntu系统，然后在这个试用系统中使用gparted工具，将/dev/sda5磁盘也就是home挂载的磁盘进行Resize/Move，将左边的边界向右移动，调整出来前面/dev/sda4磁盘也就是根目录/需要扩出来的空间大小。今天安装ROS2，过程中发现系统提示根目录空间不够，然后找方法进行根目录的扩容，因为装的是双系统，没有预留太多的空间，只能将home目录的空间压缩出来一部分，当初安装系统的时候home是挂载的一个较大的目录。]]></description><category></category></item><item><title><![CDATA[Ubuntu20.04安装ROS2foxy问题记录]]></title><link>https://blog.youkuaiyun.com/chamu99/article/details/134894875</link><guid>https://blog.youkuaiyun.com/chamu99/article/details/134894875</guid><author>chamu99</author><pubDate>Sat, 09 Dec 2023 15:26:41 +0800</pubDate><description><![CDATA[，但是/etc/apt/sources.list.d/ros2.list中还是去ros官方源中找安装包，两个源可能不同步，造成有些安装包大小不一样，报错；原因是因为前面还源了，将/etc/apt/sources.list中的源换成了清华源（因为提前换了源，所以检查的时候发现是正常的，就不用再安装相关的源了。解决方法，将ros2.list中的源也更换成清华的，一条路走到黑；执行sudo apt update又出现了文件尺寸不符的问题；（建议还是一步一步的执行，这里发现有warning）]]></description><category></category></item><item><title><![CDATA[ROS2自定义消息在vscode下的配置]]></title><link>https://blog.youkuaiyun.com/chamu99/article/details/134893204</link><guid>https://blog.youkuaiyun.com/chamu99/article/details/134893204</guid><author>chamu99</author><pubDate>Sat, 09 Dec 2023 12:24:06 +0800</pubDate><description><![CDATA[自定义ROS2消息，然后在同一个工作空间下分别使用cpp类型的节点和python类型的节点；]]></description><category></category></item></channel></rss>