自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 922

原创 linux命令行显示主机名和当前目录

在开发中linux server中,如果登录后命令行一直显示(在已经有权限登录的情况下):bash-3.2$如何让其显示主机名和文件路径(并根据不同的颜色显示):[cvadev@swcvaap3d:/home/cvadev]

2023-03-15 10:22:08 979 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 1399

原创 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 214

原创 valgrind的使用

需要注意的是,memcheck会加入代码检查每一片内存的访问和进行值运算,导致整体代码大小至少增加12倍,运行速度比平时慢25-50倍,所以使用valgrind时,保证机器环境有足够多的内存,如果进程本身启动内存有十几G,那用valgrind启动程序时,一般启动特别慢,可能1h才能启动程序。你的程序可能,至少在原则上,应该在退出前释放这些内存块。这些有指针指向的内存块和没有指针指向的内存块,或者只有内部指针指向的块,都可能产生内存泄露,因为实际上没有一个指向块起始的指针可以拿来释放,即使你想去释放它。

2022-12-09 09:54:05 4165

原创 C++ 代码覆盖率分析工具

它将特殊的检测指令插入到预处理的源代码中,然后使用原始编译器编译修改后的代码。报告中包含了整个项目的覆盖率数据,各个文件的覆盖率,以及各个文件的代码行级的覆盖情况。其中MySourcePath是要检测的项目的源文件目录,YourProgram.exe是编译好的准备进行检测的项目可执行文件,最后可以添加检测的目标程序运行的参数。在编译之后,可以像往常一样运行检测的可执行文件(并且可以通过访问它们的程序使用检测的库或插件),但是现在,当程序终止时,生成执行报告(.csexe文件)。找到可以消除的冗余测试。

2022-09-06 18:05:53 2331

原创 VSCode 的扩展包C/C++ IntelliSense, debugging, and code browsing的IntelliSense功能无法使用,远程服务器linux上面的不能用

使用ssh-keygen,实现免密码登陆linux的方法

2022-06-22 18:20:53 936

原创 ssh-keygen 配置无需每次输入密码

使用ssh-keygen,实现免密码登陆linux的方法

2022-06-22 18:07:15 233

原创 【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 108

原创 【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 931

原创 【在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 1823

原创 【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 9043 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 205

原创 【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 160

原创 【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/binexportLDL​IBRARYP​ATH=LD_LIBRARY_PATH:/opt/gurobi800/linu.

2022-03-08 15:33:57 307

原创 【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 725

转载 【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 4166

原创 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 3445 1

转载 【vscode配置远程服务实现上传下载文件】

注意:一次性将大批量文件上传至远程服务可能会导致上传部分空内容的文件,最好采用压缩包rz命令上传的方式SFTP安装VsCode安装插件很简单,插件管理,搜“SFTP”,然后安装即可。SFTP原理SFTP原理是这样的:首先本地要有一个项目文件夹,同时远程也有一个项目文件夹,然后通过配置文件来同步二者。S F T P 可 以 查 看 远 程 项 目 所 有 文 件 , 但 不 能 直 接 操 作 , 必 须 操 作 本 地 项 目 文 件 , 再 同 步 到 远 程 项 目 。 \color{FF0

2022-02-14 16:53:50 5918

原创 Qt使用小技巧

1.Qt各版本文档https://doc.qt.io/archives/

2022-02-10 19:33:07 297

原创 如何将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 506

原创 GO语言小技巧

go拼接字符串添加链接描述go json 解析添加链接描述go json转go结构体添加链接描述go连接mysql数据添加链接描述

2022-01-07 18:01:12 247

原创 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 78

原创 很好的一个技术集合文档

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 127

原创 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 4486

转载 vscode-golang跳转定义无效问题

问题发现:本来可以进行"ctrl"+点击或者F12,进行跳转定义的方式,突然失效了问题分析:1.辅助工具是否关闭解决方案,进入首选项,设置,查找go.docsTool,选项选择为 gogetdoc,这一步可能会提示你没有安装gogetdoc,那就go get -u -v github.com/zmb3/gogetdoc结果:测试跳转,还是不行2.判断工具是否有效解决方案:资料显示,方法确实没有错,但是我注意到了一点,其中的一句话他的意思是,这个工具,在使用语言服务器时,不适用。怀着试

2021-12-22 19:21:19 1010

原创 centos 下开发环境中库版本更新

centos 下开发环境中库版本更新centos 下开发环境中库版本更新gcc 版本更新方法一方法二ld 更新为了降低风险,注意备份或者克隆保存虚拟机状态gcc 版本更新开发过程中有时会遇到 gcc 版本升级或切换的问题,这里介绍2种方式,这里比较推荐第二种方法一下载对应版本的 gcc 源码,而编译源码首先需要本地拥有编译器# 安装一些可能用到编译的工具# 我的 centos 下默认的 gcc 版本是 4.8, 这也是我需要更新 gcc 的原因yum insta

2021-12-20 11:51:19 487

转载 【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 21167

原创 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 555

原创 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 3172

原创 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 1565

原创 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 917 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 1233

原创 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 227

原创 “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 2270

转载 c++定时器

记录一下,防止忘记定时器timer是多线程编程中经常设计到的工具类定时器的原理其实很简单:创建一个新线程 在那个线程里等待 等待指定时长后做任务这里用C++11实现了一个简单易用的定时器,包含两种模式:周期性定时任务执行 单次延时任务执行#ifndef _TIMER_H_#define _TIMER_H_#include <functional>#include <chrono>#include <thread>#include &l

2021-07-30 20:04:44 10867 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 535

原创 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 8349 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 1387

原创 C++定义错误码类

我们平时有这样的需求,可能是C用户的老习惯了,在底层的组件中更喜欢用返回错误码的形式来告知用户函数的调用状态,一般来说,简单用#define 一个宏来包装下返回值。#define ERR_SYSTEM_INIT -23 // system initailized fail比如,以上定义了一个错误码返回-23,意味着系统初始化失败。但是宏包含的信息太少,有些时候,用户不能如人意的理解错误原因。必须给这错误加以说明。所以就索性写了一个Error类可以定义错误码和相关错误信息,并通过错误码返回更详细的说明

2021-06-29 18:24:35 1337

octovis_windows 下面的使用,包含源码,测试可执行代码,库文件

octovis-windows,里面包含octovis的源码和自己测试的测试代码,里面有生成好的octovis.exe,以及octovis.dll和octovis.lib

2022-02-18

grpc - c++版本_release_32,vs2017编译

grpc - c++版本_release_32,vs2017编译

2021-09-10

cpp-sha256-hmac-master.zip

c++ hmac_sha256

2021-06-29

octovis.lib - windows

octovis.lib,最新编译环境VS2017+QT5.14编译的最新的octovis.lib,以及头文件和动态库结合在一起

2020-10-26

octovis.dll

octovis.dll,最新编译环境vs2017+Qt5.14编译下的最新的octovis.dll,用于在windows下面玩3D点云显示

2020-10-26

octovis-windows

octovis-windows,里面包含octovis的源码和自己测试的测试代码,里面有生成好的octovis.exe,以及octovis.dll和octovis.lib

2020-10-26

octovis-windows

octovis在windows下面使用,有源码和测试代码,用于3维点云相机显示,bt文件的读取显示,ot文件的读取显示

2020-10-26

用Python爬取网上的故事每天微信自动发给女朋友

用Python爬取网上的故事,处理之后,每天微信八点自动发给女朋友。

2019-03-20

LAV视频解码器,解决QT没有图像

LAV解码器,可以解决qt报错类似DirectShowPlayerService::doRender: Unresolved error code 80040266

2018-12-29

用qt的SQlite做的本地的数据库,关于百家姓的

用qt里面的数据库QSLite做的本地的中国姓氏数据库,里面包含了,该数据可的调用和可视化界面的增,删,改,查。

2018-12-28

python调用有道做的翻译

用python爬的有道,做的翻译的功能,有兴趣的可以下载玩玩

2018-12-14

qt数据库qsqllite操作

新建本地的数据库文件(**.db)。然后通过操作QT里面的qsqllite,QSqlQuery,QSqlTableModel实现新建数据库中的表格,并实现可视化的操作。

2018-11-16

QT获取网络图片并保存到本地

qt关于获取网络图片并保存在本地,运用QNetworkAccessManager,QNetworkReply,QNetworkRequest

2018-03-02

tianqi.rar

关于QT的天气界面,从网上获取返回的json数据然后解析,再显示在自定义的lable上

2017-12-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除