- 博客(138)
- 资源 (14)
- 收藏
- 关注
原创 octovis windows下的使用-1
octovis windows下的使用1:介绍octovisOctomap-用于机器人系统的概率,灵活和紧凑的3D映射库作者:弗赖堡大学KM Wurm,A。Hornung,版权所有(C)2009-2013。http://octomap.github.comOctovis是OctoMap的可视化工具和库。它根据GPL许可证分发(请参阅“ LICENSE.txt”)。Octovis基于QGLViewe...
2020-10-26 17:04:08 1033
原创 linux命令行显示主机名和当前目录
在开发中linux server中,如果登录后命令行一直显示(在已经有权限登录的情况下):bash-3.2$如何让其显示主机名和文件路径(并根据不同的颜色显示):[cvadev@swcvaap3d:/home/cvadev]
2023-03-15 10:22:08 1115 1
原创 gdb打印vector(亲测有效)
或者可以使用上面提到的pvector myVector N-1,表示打印第N个对象,但是该输出是一个格式化之后的结果,我们无法再对该输出结果进行操作,但是上面两个命令可以,例如p (myVector._M_impl._M_start)[N-1].element,因此,如果只是查看输出结果,我们可以直接使用pvector,如果还需要对vector的某个结果进行操作,建议使用上述两个命令。当前测试的GDB版本为7.9.1,还不能直接用print命令打印vector。// 这两种方式,编号均从0开始。
2023-03-08 11:42:19 1586
原创 std :: sort与本地类型比较
鉴于我g++ -v是一个gcc version 4.8.2 (Debian 4.8.2-12)但是用Clang/LLVM 3.4编译。上述用编译GCC 4.8使用。
2023-01-04 16:12:12 252
原创 valgrind的使用
需要注意的是,memcheck会加入代码检查每一片内存的访问和进行值运算,导致整体代码大小至少增加12倍,运行速度比平时慢25-50倍,所以使用valgrind时,保证机器环境有足够多的内存,如果进程本身启动内存有十几G,那用valgrind启动程序时,一般启动特别慢,可能1h才能启动程序。你的程序可能,至少在原则上,应该在退出前释放这些内存块。这些有指针指向的内存块和没有指针指向的内存块,或者只有内部指针指向的块,都可能产生内存泄露,因为实际上没有一个指向块起始的指针可以拿来释放,即使你想去释放它。
2022-12-09 09:54:05 4555
原创 C++ 代码覆盖率分析工具
它将特殊的检测指令插入到预处理的源代码中,然后使用原始编译器编译修改后的代码。报告中包含了整个项目的覆盖率数据,各个文件的覆盖率,以及各个文件的代码行级的覆盖情况。其中MySourcePath是要检测的项目的源文件目录,YourProgram.exe是编译好的准备进行检测的项目可执行文件,最后可以添加检测的目标程序运行的参数。在编译之后,可以像往常一样运行检测的可执行文件(并且可以通过访问它们的程序使用检测的库或插件),但是现在,当程序终止时,生成执行报告(.csexe文件)。找到可以消除的冗余测试。
2022-09-06 18:05:53 2622
原创 VSCode 的扩展包C/C++ IntelliSense, debugging, and code browsing的IntelliSense功能无法使用,远程服务器linux上面的不能用
使用ssh-keygen,实现免密码登陆linux的方法
2022-06-22 18:20:53 1117
原创 【linux下小技巧总结】
1:linux下进行内存泄露定位使用valgrind首先下载valgrind,并解压到linux服务器上,进入解压目录,修改里面autogen.sh的权限和格式,运行valgrind --log-file=/home/valgrind.log --tool=memcheck --leak-check=full ./test...
2022-05-16 14:28:40 130
原创 【gdb调试命令】
GDB调试命令用gdb运行程序gdb -args xx运行程序(gdb)r暂停程序(gdb)s(gdb)或者输入ctrl + c继续程序(gdb)c显示堆栈(gdb)bt将堆栈信息写入到指定的文件(gdb)set logging file mylog.txt(gdb)set logging on(gdb)thread apply all bt显示线程信息(gdb)info thread查看某个线程(gdb)thread 13(线程信息前面的
2022-05-05 10:21:10 993
原创 【在Visual Studio中使用AStyle设置代码风格】
最近在做一个C++项目,我们使用了一个叫做AStyle的插件来做代码格式化。下载方式1:通过Visual Studio下载> 1. 启动Visual Studio,以下简称VS;> 2. 英文版VS:VS主菜单 > Tools > Extension Manager…; 中文版VS:VS主菜单 > 工具 > 扩展和更新…;> 3. 左边选择Online Gallery(联机),输入关键字“AStyle”。下载方式2:通过页面下载下载页面:v
2022-03-23 15:06:29 2026
原创 【linuxs make 出现undefined reference to ‘std::__cxx11...】
类似这种:解释一:在CentOS系统上安装了gcc4.8.2和gcc7.2两个版本,gcc使用的是4.8.2版本,g++使用的是7.2版本,使用make编译cmake时出现c++11标准库未定义错误,两个版本的编译器使用的库版本也不同,对c++11标准的实现程度也不一样,所以会出现该问题,将g++换成4.8.2版本即解决该问题。个人感觉编译器报标准库的错误很可能就是工具链版本的问题,修改使用合适的工具链应该即可,比如对gcc软件,所有编译器都使用统一版本即可。————————————————
2022-03-17 15:21:33 10802 1
原创 【1. CMake 系列 - 从零构建动态库和静态库】
1. 文件目录结构首先创建如下目录结构:└── lib ├── build # ├── CMakeLists.txt └── src # ├── add.c └── add.h从上面的结构,可以看出博主想实现一个具备简单加法的库。build:存放cmake生成的makefile文件,make编译生成的中间文件。CMakeLists.txt:使用cmake语法编写相关指令,用于生成makefilesrc:库文件的源代码2. 库文件源代
2022-03-17 14:59:52 239
原创 【linux小技巧】
1:linux下打包#!/bin/bashif [ ! -d build ];then mkdir build #创建build文件夹ficd build #cd到build文件夹/usr/local/cmake/bin/cmake ../src -DCMAKE_BUILD_TYPE=Release #调用linux上面的cmake工具,前面是路径 源码路径 编译参数=releasemake #构建SoftName="libsrv-pt-intelle
2022-03-14 17:25:35 210
原创 【linux配置环境变量】
vim etc/project按 “i” 表示插入的意思,添加你需要添加的环境变量例:export PATH=PATH:/opt/gurobi800/linux64/binexportLDLIBRARYPATH=PATH:/opt/gurobi800/linux64/bin export LD_LIBRARY_PATH=PATH:/opt/gurobi800/linux64/binexportLDLIBRARYPATH=LD_LIBRARY_PATH:/opt/gurobi800/linu.
2022-03-08 15:33:57 329
原创 【golang 调用 cgo coredump 获得方法】
写一个错误的c程序go测试代码package dlsymimport "testing"func Test_intercept(t *testing.T) { Intercept("gethostbyname\x00")}go调用C代码 所属的包package dlsym// #cgo CFLAGS: -I.// #include <stddef.h>// #include "dlsym_wrapper.h"import "C"import "unsafe
2022-03-01 20:25:05 825
转载 【Linux 下gdb调试——定位程序崩溃位置】
当程序出现错误,可使用gdb在线调试,以下举一个简单例子说明,如何定位程序。1.创建一个文件gdb_test.c,输入以下代码。代码中的第5行,使用了未初始化为有效值的指针,运行过程中肯定是会出错的。1 #include “stdio.h”234 int main()5 {6 int b = 0;7 b = 10;8 printf("****** b = %d ************ ",*b);9 }2.编译源码,生成可执行文件gdb_test。增加参
2022-03-01 19:25:14 4547
原创 cmake下编译release添加可调试的信息
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") add_definitions(-DAF_CLASSARRANGE_EXPORTS) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,-Bsymbolic") set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb") set(CMA
2022-02-28 16:15:58 4188 1
转载 【vscode配置远程服务实现上传下载文件】
注意:一次性将大批量文件上传至远程服务可能会导致上传部分空内容的文件,最好采用压缩包rz命令上传的方式SFTP安装VsCode安装插件很简单,插件管理,搜“SFTP”,然后安装即可。SFTP原理SFTP原理是这样的:首先本地要有一个项目文件夹,同时远程也有一个项目文件夹,然后通过配置文件来同步二者。S F T P 可 以 查 看 远 程 项 目 所 有 文 件 , 但 不 能 直 接 操 作 , 必 须 操 作 本 地 项 目 文 件 , 再 同 步 到 远 程 项 目 。 \color{FF0
2022-02-14 16:53:50 6535
原创 如何将go写入到文件
方法一package mainimport ( "log" "os" "time")func init() { file := "./" +"message"+ ".txt" logFile, err := os.OpenFile(file, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0766) if err != nil { panic(err
2022-01-17 19:19:40 559
原创 GO语言小技巧
go拼接字符串添加链接描述go json 解析添加链接描述go json转go结构体添加链接描述go连接mysql数据添加链接描述
2022-01-07 18:01:12 259
原创 c++简单版线程池
#ifndef THREAD_POOL_H#define THREAD_POOL_H#include <vector>#include <queue>#include <memory>#include <thread>#include <mutex>#include <condition_variable>#include <future>#include <functional>#incl
2022-01-07 17:58:57 106
原创 很好的一个技术集合文档
https://github.com/xueqing/MyNote/blob/master/ffmepg/mp4/iso_base_media_file_format_spec_2005.md#%E7%BC%A9%E5%86%99
2021-12-28 19:34:51 164
原创 ERROR:C2678 二进制“<”: 没有找到接受“const _Ty”类型的左操作数的运算符(或没有可接受的转换)
【1】复现问题为了更精确的分析,先用最简单的示例复现此错误场景,代码如下:#include <map>#include <string>struct Section{ int id; std::string code; bool operator<(const Section& rhs) { return id < rhs.id; }};int main(){ std::map&
2021-12-28 09:36:36 5045
转载 vscode-golang跳转定义无效问题
问题发现:本来可以进行"ctrl"+点击或者F12,进行跳转定义的方式,突然失效了问题分析:1.辅助工具是否关闭解决方案,进入首选项,设置,查找go.docsTool,选项选择为 gogetdoc,这一步可能会提示你没有安装gogetdoc,那就go get -u -v github.com/zmb3/gogetdoc结果:测试跳转,还是不行2.判断工具是否有效解决方案:资料显示,方法确实没有错,但是我注意到了一点,其中的一句话他的意思是,这个工具,在使用语言服务器时,不适用。怀着试
2021-12-22 19:21:19 1133
原创 centos 下开发环境中库版本更新
centos 下开发环境中库版本更新centos 下开发环境中库版本更新gcc 版本更新方法一方法二ld 更新为了降低风险,注意备份或者克隆保存虚拟机状态gcc 版本更新开发过程中有时会遇到 gcc 版本升级或切换的问题,这里介绍2种方式,这里比较推荐第二种方法一下载对应版本的 gcc 源码,而编译源码首先需要本地拥有编译器# 安装一些可能用到编译的工具# 我的 centos 下默认的 gcc 版本是 4.8, 这也是我需要更新 gcc 的原因yum insta
2021-12-20 11:51:19 540
转载 【linux】查看Linux系统版本信息的几种方法
一、查看Linux内核版本命令(两种方法):1、cat /proc/version2、uname -a二、查看Linux系统版本的命令(3种方法):1、lsb_release -a,即可列出所有版本信息:这个命令适用于所有的Linux发行版,包括RedHat、SUSE、Debian…等发行版。2、cat /etc/redhat-release,这种方法只适合Redhat系的Linux:[root@S-CentOS home]# cat /etc/redhat-releaseCentOS
2021-12-10 09:39:00 22806
原创 c++ 小技巧总结
1:改变控制台输出的文本格式,特别是中文编码的问题,转换成UTF-8 system("chcp 65001"); system("cls");2:改变当前文件索引路径(改为运行文件路径)#include <direct.h> //需要包含这个文件// change current run path std::string rootPath = "";#ifdef WIN32 char* buf = _getcwd(nullptr, 0); if (buf) { roo
2021-12-01 14:11:19 620
原创 c++ 11读写锁
参考:C++中的RAII_一蓑烟雨任平生 也无风雨也无晴-CSDN博客C++11实现模板化(通用化)RAII机制_10km的专栏-CSDN博客_c++11 raii无锁编程:c++11基于atomic实现共享读写锁(写优先)_10km的专栏-CSDN博客raii.h#include <type_traits>#include <functional>namespace gyd { /* 元模板,如果是const类型则去除const修饰符 */ templat
2021-11-17 15:43:14 3303
原创 C++ gRPC双向流异步客户端处理
参考:C++ GRPC ClientAsyncReaderWriter: how to check if data is available for read? - Stack Overflowcpp-samples/streaming_transcribe_singlethread.cc at main · GoogleCloudPlatform/cpp-samples · GitHub如何同时从gRPC中读取和写入:https://stackoverflow.com/question
2021-11-10 14:36:45 1729
原创 qmake qt工程用vs打开时出现 LNK1104: 无法打开文件“uiAccess=‘false‘ /MANIFESTDEPENDENCY:ty
说明LNK1104: 无法打开文件“uiAccess='false' /MANIFESTDEPENDENCY:ty对于此类型问题现实可能各种原因导致,我目前提供的并不能解决每一位所产生的问题,勿怪。平台:vs2015 - qt5.7.1将通过 qmake -tp vc xxx.pro 产生xxx.vcxproj 通过vs2019打开 并选择对应的工具集编译时,出现LNK1104: 无法打开文件“uiAccess=‘false’ /MANIFESTDEPENDENCY:ty解决方案打开对应
2021-11-10 14:34:42 1045 2
原创 gRPC 异步流处理
/* * * Copyright 2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source c.
2021-10-27 17:49:45 1304
原创 Git 仓库的整体迁移
最近公司因项目拆分,要将原有代码移植到新的Git项目组。刚开始是想把代码直接拷贝过去,但提交的历史信息和原有分支就会丢失。于是网上找了下方法具体操作了一次可行,这里就记录一下。git clone --mirror https://github.com/xxxxxxx/oldProject.gitcd oldProject.gitgit remote set-url –-push origin https://github.com/xxxxxxx/newProject.gitgit push ..
2021-09-26 10:41:24 277
原创 “in”使用未定义的 class“std::basic_ifstream<char,std::char_traits<char>>”
问题: “in”使用未定义的 class“std::basic_ifstream<char,std::char_traits<char>>”解决:#include<fstream>
2021-08-09 10:39:45 2541
转载 c++定时器
记录一下,防止忘记定时器timer是多线程编程中经常设计到的工具类定时器的原理其实很简单:创建一个新线程 在那个线程里等待 等待指定时长后做任务这里用C++11实现了一个简单易用的定时器,包含两种模式:周期性定时任务执行 单次延时任务执行#ifndef _TIMER_H_#define _TIMER_H_#include <functional>#include <chrono>#include <thread>#include &l
2021-07-30 20:04:44 11093 2
原创 关于在windows上显示3D点云地图颜色的问题
关于在windows上显示3D点云地图颜色的问题研究结论 由于之前项目需求是需要在windows上使用octovis上显示3D点云数据,查阅大量的资料发现,octovis基本是都是在Linux使用的多,windows上玩的网上的资料基本没有,于是乎我就自己想着按照他之前的路线重新编辑,但是可惜没有成功,后来我干脆自己download源码,自己搭框架,给他重新编译生成。具体可以参考我的博客https://blog.csdn.net/qq_36583051/article/details/109293..
2021-07-05 10:36:21 567
原创 c++判断字符串是否有中文
C/C++ -- 判断字符串中存在中文电脑系统中的英文字符串和中文字符最根本的区别就在于:1、英文的 ASCII 码,其最高位为 0,占一个字节注:英文的ASCII码范围是在0到127,二进制为(0000 0000 ~ 0111 1111)2、中文的 ASCII 码,其最高位为 1。占两个字节,注:两个字节的最高位都是1因此可以看出,可以拿字符串中的每个字节和ASC||的最高位也就是0x80(1000 0000)比较,如果一开始并且有两个连续的字符比0x80大,那么这两个字符合在一起
2021-07-02 10:18:14 9441 1
原创 c++ 判断gbk或者utf-8编码,然后互转
#include <iostream>#include <string>#include <string.h>#include <stdlib.h>using namespace std;int preNUm(unsigned char byte) { unsigned char mask = 0x80; int num = 0; for (int i = 0; i < 8; i++) { if ((byte & mas.
2021-06-29 18:27:31 1633
原创 C++定义错误码类
我们平时有这样的需求,可能是C用户的老习惯了,在底层的组件中更喜欢用返回错误码的形式来告知用户函数的调用状态,一般来说,简单用#define 一个宏来包装下返回值。#define ERR_SYSTEM_INIT -23 // system initailized fail比如,以上定义了一个错误码返回-23,意味着系统初始化失败。但是宏包含的信息太少,有些时候,用户不能如人意的理解错误原因。必须给这错误加以说明。所以就索性写了一个Error类可以定义错误码和相关错误信息,并通过错误码返回更详细的说明
2021-06-29 18:24:35 1455
octovis_windows 下面的使用,包含源码,测试可执行代码,库文件
2022-02-18
octovis-windows
2020-10-26
LAV视频解码器,解决QT没有图像
2018-12-29
qt数据库qsqllite操作
2018-11-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人