c/c++
文章平均质量分 83
globbo
这个作者很懒,什么都没留下…
展开
-
windows下vscode调试虚拟机linux c++工程的三种方法
vscode去远程调试方法有很多种,不同的插件对应了不同的调试方法,比如:1.C/C++插件进行GDB调试(编写launch.json文件)2.C/C++ Runner插件3.CMake Tools插件(只针对CMake工程,需要搭配C/C++插件一起使用,但无需编写launch.json)原创 2024-04-16 14:03:07 · 1177 阅读 · 1 评论 -
C/C++工程中错误码定义总结
系统一般是按模块划分的,模块与模块之间通过调用与被调用的关系,一般也会划分为多个层次,底层一般对接系统级API或者实现一些算法,上层调用底层的接口来处理业务。那么这些错误码如何定义呢?首先要明白错误码是什么:在笔者看来,错误码分为通用的系统级错误码和业务错误码,系统级错误码一般包括指针为空、内存分配失败、无效参数、超时等等,业务错误码和具体的模块业务有关系。原创 2023-12-21 23:22:11 · 1279 阅读 · 0 评论 -
vscode c/c++ global插件实现代码跳转
在vscode阅读编写c/c++代码时,体验不是很好,有时候会无法跳转。这里通过GNU Global工具解决这个问题。原创 2021-03-11 15:11:26 · 11598 阅读 · 2 评论 -
ROS(1)安装
目录1. ros安装1.1. 添加源1.2. 添加私钥1.3. 更新软件列表1.4. 安装ros1.5. 初始化1.5.1. 问题11.5.2. 问题21.6. 环境变量配置1.7. 安装rosinstall1.8. 测试小乌龟1.9. 测试rviz1.10. 卸载ros2. 注意注意3. 创建工作空间与功能包3.1. 创建工作空间3.2. 编译工作空间3.3. 设置环境变量3.4. 检查环境变量3.5. 创建功能包3.6. 编译功能包3.7. 编译指定的功能包4. 话题4.1. 发布与订阅4.2. 自定义原创 2021-01-25 15:18:23 · 413 阅读 · 0 评论 -
ROS(12)ROSCostMap2D详解
11原创 2021-01-25 14:56:28 · 870 阅读 · 0 评论 -
ROS(9)turtlebot仿真(利用karto)
9. turtlebot仿真(利用karto)参考链接https://blog.csdn.net/qq_40078576/article/details/104773668https://blog.csdn.net/lingchen2348/article/details/795039709.1. 安装Gazebo仿真软件安装ros时已经安装。9.2. 下载Gazobo的模型包不需要再下载模型包了,turtlebot包会加载出模型。9.3. 安装slam建图包turtlebot3支持gma原创 2021-01-25 14:53:53 · 826 阅读 · 0 评论 -
ROS(10)turtlebot仿真(利用cartographer_ros)
10. turtlebot仿真(利用cartographer_ros替换karto)参考链接https://blog.csdn.net/qq_34935373/article/details/111991920https://www.freesion.com/article/9794248452/10.1. 官方纯定位Pure localization仿真测试10.1.1. 下载数据集wget -P mnt/e/wsl/cartographer_demo/pureLoc/ https://sto原创 2021-01-25 14:54:53 · 397 阅读 · 0 评论 -
ROS(7)launch启动文件
7. launch启动文件任何包含两个或两个以上节点的系统都可以利用启动文件来指定和配置需要使用的节点。通常的命名方案是以.launch作为启动文件的后缀,启动文件是XML文件。一般把启动文件存储在取名为launch的目录中。7.1. 指令roslaunch [options] [package] <filename> [arg_name:=value...]roslaunch [options] <filename> [<filename>...] [arg_n原创 2021-01-25 14:52:02 · 576 阅读 · 0 评论 -
ROS(11)move_base详解
11. move_base详解11.1. move_base配置参数解读参考链接:https://blog.csdn.net/banzhuan133/article/details/90239252https://wenku.baidu.com/view/1ae6d9a56729647d27284b73f242336c1fb9304d.htmlhttps://blog.csdn.net/qq_29313679/article/details/106237063在仿真中,查看turtlebot3_n原创 2021-01-25 14:55:56 · 2701 阅读 · 3 评论 -
记录一次Windows下通过reimp和dlltool转换.lib到.a的过程
背景是这样的:在linux下的一个C++服务由于特殊原因,需要在windows下跑,该工程为cmake搭建,用到了qt的一些基础库,我们想在qtcreator中用mingw来调试运行,其中用到的activemq客户端库原先已经有现成的dll库,只需要转换.lib到.a即可无缝切换。上网查阅资料,步骤很简单,先用exports转出def导出文件,然后用mingw下的dlltool转.a:下...原创 2019-08-13 21:19:34 · 5593 阅读 · 1 评论 -
位运算与取模
(1) 判断int型变量a是奇数还是偶数a&1 = 0 偶数 a&1 = 1 奇数(2) 取int型变量a的第k位 (k=0,1,2……sizeof(int)),即a>>k&1(3) 将int型变量a的第k位清0,即a=a&~(1<<k)(4) 将int型变量a的第k位置1, 即a...转载 2019-05-29 22:09:04 · 3170 阅读 · 0 评论 -
do{}while(0)用法
linux内核和其他一些开源的代码中,经常会遇到这样的代码:do{ ...}while(0)这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么为什么要这么用呢?实际上,do{...}while(0)的作用远大于美化你的代码。查了些资料,总结起来这样写主要有以下几点好处:1、辅助定义复杂的宏,避免引用的时候出错:举例来说,假设你需要定义这样一个...转载 2019-05-29 21:47:34 · 4700 阅读 · 2 评论 -
Ubuntu16.04下从零搭建Qt5.9.3+PyQt5+Eric6开发平台
关于Ununtu16.04 1.修改下载源列表,加快下载速度:s1.找到/etc/apt/sources.list并备份: cp /etc/apt/sources.list /etc/apt/sources.list.baks2.删除sources.list中的内容,修改为下面的内容:deb http://mirrors.ustc.edu.cn/ubuntu/ xenial m...原创 2018-09-03 19:50:55 · 1133 阅读 · 0 评论 -
va_list、va_start、va_arg、va_end的使用
实例:求任意个正整数的最小值原创 2014-04-11 14:10:44 · 407 阅读 · 0 评论 -
c++文件路径的总结
CString filename=_T("D:\\文件夹");或CString filename=_T("D:/matcom45/doc/users/_themes/m.dat");工程文件夹下简写路径应该是 ".. \\program \\file.txt原创 2014-04-28 17:18:28 · 430 阅读 · 0 评论 -
服务器开发的一点心得体会
http://www.cnblogs.com/knight-monkey/p/monkey_server_blog.html转载 2015-06-20 17:05:51 · 435 阅读 · 0 评论 -
两个类互相调用,头文件的写法
类的超前引用原创 2014-04-17 13:23:00 · 1022 阅读 · 0 评论 -
内存对齐的那点事
首先由一个程序引入话题: 1 //环境:vc6 + windows sp2 2 //程序1 3 #include 4 5 using namespace std; 6 7 struct st1 8 { 9 char a ;10 int b ;11 short c ;12 };13 14 struct st转载 2015-06-22 21:23:41 · 244 阅读 · 0 评论 -
memcmp与strncmp
看实现:(网上摘录)int memcmp(const void * cs,const void * ct,size_t count) { const unsigned char *su1, *su2;//定义临时指针,因为void*不能做自增自减运算 int res = 0; for( su1 = (unsigned char* )cs, su2 = (unsigned char原创 2015-06-22 21:14:32 · 641 阅读 · 0 评论 -
关于在dll中申请内存,外部释放的问题
因为malloc/free,new/delete都是调用HeapAlloc/HeapFree来实现来实现内存分配是释放的。查看Windows的API可以看到,这两个函数都需要一个Heap的HANDLE做为参数。CRT库采用了全局变量来保存这个HANDLE。如果是CRT静态链接,CRT库的代码会链接到各个DLL中去,也包括这个全局变量。也就是说,每个使用CRT静态链接的dll中都有一个自己的转载 2016-06-11 23:00:16 · 1496 阅读 · 0 评论 -
OpenCV内存池管理(一)
OpenCV提供了一套高效的内存管理方案,提升了内存申请速率,减少了内存碎片,能够很好的提升程序的稳定性,同时支持线程同步。下面是对OpenCV内存管理源码中alloc.cpp的主要函数fastMalloc()和fastFree()的解读研究。原创 2016-07-17 16:33:24 · 2091 阅读 · 0 评论 -
OpenCV内存池管理(二)
上一节绘制了基本的Opencv内存池结构,本节着重讲解一下运行的流程,注意没有考虑线程安全。1、三个链表在上一节的图中,有三个主要的链表:①内存池自由链:单向链接的Block区块。②Block区块的私有链:单向链接的区块内释放过的地址链表③通过START和FREE管理的双向链表。2、fastmalloc()流程3、falstfree()流程4、初始化原创 2016-07-19 22:10:06 · 815 阅读 · 0 评论 -
浅拷贝和深拷贝
以下情况都会调用拷贝构造函数:①一个对象以值传递的方式传入函数体 :②一个对象以值传递的方式从函数返回 :③一个对象需要通过另外一个对象进行初始化。转载 2014-04-17 15:28:00 · 240 阅读 · 0 评论