自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 收藏
  • 关注

原创 Linux最直观的性能分析(热点分析)-编译perf并生成火焰图

本文先介绍了linux下perf工具的使用场景,然后对命令行安装和源码编译安装两种方式做了说明,接下来通过最简单的perf top命令给出perf的直观印象,最后通过perf record生成火焰图的方式说明如何发现进程中的函数热点。

2024-07-20 16:34:18 536

原创 一次进程虚拟内存占用超过200G问题分析

一次性分配大块内存的,可通过gdb单步骤执行快速确认具体位置持续小内存分配逐渐增长的,借助工具采集数据分析。

2024-06-29 12:18:48 319

原创 别再滥用std::async了,strace命令暴露了一个乱开线程问题

用strace查看进程的系统调用后,发现一个std::async滥用问题。

2024-06-22 17:43:18 190

原创 一个cmake版的C++项目代码模板,包含流水线、git以及代码格式化配置等支持CICD发布流程

本文给出快速构建C++项目的代码仓库模板 ,简单却完整编译脚本打包上传脚本-依赖拉取代码格式化配置git配置流水线pipeline配置使用这个模板你只需要:将源文件放到模块目录下,并添加到cmake中即可。

2024-06-22 16:44:45 358

原创 使用GNU Gcov & Lcov生成C++单元测试代码覆盖率报告

如何确定哪些代码被测试覆盖,哪些未被测试,并评估整体的代码覆盖率?本文介绍了如何使用 Gcov 和 LCOV 工具统计 C/C++ 项目的代码覆盖率。

2024-06-15 15:10:48 451 1

原创 google全家桶:glog/gflags/gtest编译安装和使用

gflags:Google开源命令行参数解析工具,从环境变量或配置文件中读配置glog:Google开源日志库,用来打印日志,支持多种级别日志打印gtest:Google开源的C++测试框架,可在源代码中定义测试用例Google的开源代码,有保证多人使用和验证过经典的日志库。

2024-06-05 09:58:40 983

原创 小公司的软件开发IT工具箱

小公司软件开发人员,你该知道的那些IT基础设施。从几十人发展到几百人,这是我们的实践。

2024-06-02 16:54:29 684

原创 cmake使用交叉编译工具链并验证

cmake配置编译并使用VERBOSE验证

2024-05-26 11:58:44 471

原创 vscode+docker搭建迷你开发环境。制作docker镜像,并通过vscode连接后进行开发

vscode+docker搭建最小化迷你开发环境。制作docker镜像,并作为开发环境通过vscode连接。

2024-05-21 09:57:43 2306

原创 docker中安装jenkins,并在node和cloud上跑通基于源码控制SCM的pipeline

从安装jenkins到创建jenkins的node和cloud,最后再将scm和FreeStyle两种流水线跑通。

2024-05-19 18:51:10 1393

原创 git分支策略(github-flow VS git flow,如何选择)

github-flow VS git flow,不同项目周期,不同团队规模,如何选择git代码分支管理策略

2024-05-18 16:08:20 768

原创 CICD:搭建gitlab-runner服务实现自动化编译打包上传

通过ruuner实现,在gitlab上的仓库打了tag后自动触发编译、打包、上传等自动化发版流程。gitlab-runner依赖项很少可以直接通过deb包的方式部署到物理机。

2024-05-17 09:58:31 481

原创 花了2小时,我在公司内网搭建了gitlab服务

1小时,在ubuntu的docker中搭建gitlab服务器,环境隔离,方便迁移

2024-05-16 10:59:17 1321

原创 QT对话框延迟关闭销毁

启动一个对话框后,过一段时间自行关闭销毁ReminderWidget::ReminderWidget(QString text, QWidget* parent) : QWidget(parent){ //设置去掉窗口边框、任务栏无标志、置于顶层 this->setWindowFlags(Qt::FramelessWindowHint | Qt::Tool | Qt::WindowStaysOnTopHint); //设置属性:关闭即销毁 this->setAttribu

2022-05-29 19:39:40 810 1

原创 夜神模拟器和mitmproxy抓包

安装mitmproxy1 mitmproxy官网下载mitmproxy2 安装mitmproxy3 打开mitmproxymitmproxy -p 88994 电脑端设置代理(否则开启代理后,电脑打不开网页)【windows 设置】->【网络和Internet】->【代理】5 验证mitmproxy在打开的网页中(第三步操作会有网页打开)下载安装证书6 找到windows证书下载后双击安装7 找到其他平台的证书下载(下图中Other Platforms)8

2022-05-02 10:08:52 1730

原创 C++获取网卡名称和IP地址

获取网卡名称和IP地址windows下建议用windows API来获取 参考链接linux下可用pcap或者是getifaddrs API(如果不需要MAC地址的话推荐)来获取 参考链接#ifdef _MSC_VER#include <WinSock2.h>#include <Iphlpapi.h>#pragma comment(lib,"Iphlpapi.lib") //需要添加Iphlpapi.lib库#else#include <pcap.h>#

2021-10-25 16:13:53 2421

原创 QT常用参考

1:QT 判断鼠标是否在某个控件上

2021-08-11 16:45:41 326

原创 libpcap autoremove卸载引发的问题

记录一次异常操作导致的Ubuntu rviz异常问题当时的操作:执行了sudo apt-get remove libpcap-dev 卸载pcap的时候,提示autoremove,然后就选择了确认。结果把其他的依赖项给卸载了。后面导致RVIZ和系统设置里面的TAB全都无法使用。最后安装了opengl驱动后重启电脑解决了。OPENGL安装参考链接sudo apt-get install libgl1-mesa-dev...

2021-08-06 14:52:10 313

原创 Windows C++获取网卡适配器接口信息

Windows获取网卡适配器接口信息#include <pcap.h>#ifdef _MSC_VER#include <WinSock2.h>#include <Iphlpapi.h>#pragma comment(lib,"Iphlpapi.lib") //需要添加Iphlpapi.lib库#endifstd::vector<std::string> getLocalMachineNetworkAdapterList(){ pcap_if

2021-06-07 12:30:04 1453

原创 将文件夹下面的文件数据以数组形式保存到CPP文件中

将文件夹下面的文件数据以数组形式保存到CPP文件中,以std::map方式来索引文件信息。使用场景:不希望把文件数据直接暴露给用户。效果如下:代码参考:#include <qdir.h>#include <qicon.h>#include <qpixmap.h>#include <fstream>#include <iostream>struct MyIconInfo{ std::string name; s

2021-06-04 09:10:14 391

原创 QT资源文件的两种使用方式

QT资源文件的两种使用方式(CMake)通过Qt资源文件管理图片资源,qss样式表等。有两种方式使用Qt资源文件。第一种:将资源内容编译到可执行文件中,实现了图标等资源的封装,可达到防止恶意篡改的目的。第二种:使用rcc工具将资源文件qrc编译成rcc文件,然后在代码中动态加载。1:如何将资源文件qrc编译到可执行程序中第一步:生成资源文件qrc1:打开Qt designer,随便新建一个窗体(打开窗体后才能新建出资源文件)2:打开资源浏览器,点击编辑资源图标3:点击新建资源文件4:

2021-06-04 08:58:12 2934 1

原创 CMakeLists.txt文件中为APP添加图标

windows下在CMakeLists.txt文件中为APP添加图标一:准备ico图标通过 http://tool.je2s.com/ico/ 可以在线将图片转换成ico图标。上传图片后,导出ico文件命名为app.ico二:创建RC文件logo.rc,将下面内容粘贴到文件中IDI_ICON1 ICON DISCARDABLE “app.ico”文件如图所示三:在CMakeLists文件中将rc文件添加到源文件列表中四:将准备好的ico文件放置到和rc文件相同

2021-06-03 09:19:51 2232

原创 seekg返回失败

std::ifstream seekg返回失败问题描述:std::ifstream读取到文件结尾后,使用seekg会返回失败error处理方式:在seek之前,使用ifs.clear();ifs.clear(); before ifs.seekg(pos);参考链接:https://stackoverflow.com/questions/16364301/whats-wrong-with-the-ifstream-seekg...

2021-06-03 09:14:29 401

原创 QT获取文件信息

QT获取文件信息1:判断文件是否存在:Static bool QFileInfo::exists(const QString &file)或者bool QFileInfo::exists() const2:获取文件路径QFileInfo fi(“c:/temp/foo/123.txt”); => fi.absoluteFilePath() =>“C:/temp/foo”QFileInfo fi(“c:/temp/foo”); => fi.absoluteFile

2021-06-03 09:10:47 561

原创 QT表格动态刷新显示大量数据

Spreadsheet(QT表格动态刷新显示大量数据)代码链接:git代码链接效果图:

2021-06-02 08:58:44 3069

原创 网络问题排查

网络问题排查记录多网卡PING外部设备不通1:PC系统上面有两个网卡A和B,A配置的动态DHCP获取IP地址,用来访问外网,网络连接之后获取到10.10.x.x网段的IP地址。B配置的是静态IP地址 192.168.10.10,用于调试设备(设备IP地址是192.168.10.x)。问题复现步骤:1:A正常连接外网,B正常连接设备但是设备处于断电状态。2:ping设备的IP地址192.168.10.10。3:将设备上电。4:ping超时,大约1分钟只有才能ping通。问题原因:系统网络配置

2021-03-19 12:58:45 316

原创 Visual Studio 打开文件后显示不一致的行尾

问题现象:Visual Studio 打开文件后显示不一致的行尾“The line endings in the following file are not consistent. Do you want to normalize the line endings?”问题影响:可能导致Visual Studio的智能代码提示功能不能用原因:WINDOW下和LINUX以及MACOS下的行尾符号不一致,从网页上面COPY的代码包含的换行符号与VISUAL STUDIO打开的文件中的换行符号不一致。

2021-02-03 09:39:55 3755

原创 QT问题记录

开发过程中遇到的一些问题QT比较好的例子教程1: QChart折线图添加大量数据效率问题2:Qt 键盘事件与消息过滤器3:正则表达式:QRegExp rx("[0-9]{0,4}[.]{0,4}");4:Qt QLineEdit控件textChanged信号和textEdited信号区别5:Qt隐藏的功能和技巧6:可以参开自定义控件的实现,QT 自定义IP地址输入框7:QtChar...

2021-01-26 10:41:57 228

原创 Gitbook安装

1:下载node js 10.23.0版本注意,如果安装了其他版本的Node JS可能会导致初始化错误2:安装成功之后打开控制台可以看到node js的版本3:安装GitBook4:查看安装结果5:Gitbook如何生成一本书参考下面链接GitBook 准备工作做好之后常用插件...

2021-01-21 21:39:55 93

原创 疑难杂症

本文记录开发过程中遇到的各种奇怪问题1:Paraview 5.8.1编译的时候出现错误==“error: fatal error C1002: compiler is out of heap space in pass 2”==解决方式参考:https://discourse.paraview.org/t/fatal-error-c1002-compiler-is-out-of-heap-space-in-pass-2/3021具体操作:Disable VTK-m by setting the PAR

2020-10-16 16:18:02 416

原创 std::cin读取行数据

#include <stdio.h>#include <iostream>#include <string.h>#include <sstream>int main(int argc, char** argv){ int row, col; const int lines = 5;// how line to read from the std::cin std::vector< std::vector<std::

2020-09-11 09:35:29 584

原创 IDE常用快捷键

VS2015快捷键VS2015常用快捷键,参考1参考21:格式化代码1, ctrl+a2, ctrl+k3, ctrl+f

2020-09-06 21:01:17 128

原创 c++回调函数、同步队列、生产者消费者举例

C++11 同步队列、注册回调函数、生产者消费者代码记录同步队列:// data queuetemplate <typename T>class SynchronizedQueue {public: SynchronizedQueue() : queue_() , mutex_() , cond_() , request_to_end_(false) , enqueue_data_(true)

2020-08-28 20:34:28 2551

原创 Nginx使用汇总

记录Nginx的相关配置1:nginx实现多个域名在同一服务器指向不同端口 主要用来处理nginx和tomcat两个端口2:Nginx反向代理到Tomcat服务器 也可以用来处理nginx和tomcat两个端口3:nginx location配置详细解释4:nginx反向代理–根据访问路径将请求分发至不同服务器 && nginx根据URL分流5:Nginx 配置 SSL 证书 + 搭建 HTTPS 网站教程...

2020-08-23 16:10:47 92

原创 Eigen库使用汇总

记录使用过的Eigen功能1:Eigen(3)矩阵Matrix及其简单操作2:使用eigen库进行空间变换 旋转平移,尺度缩放,放射变换3:基于eigen实现欧拉角(RPY), 旋转矩阵, 旋转向量, 四元数之间的变换

2020-08-23 16:00:05 539

原创 常用软件

参看windows进程和资源情况:Process Explorer v16.32参考链接:https://superuser.com/questions/117902/find-out-which-process-is-locking-a-file-or-folder-in-windows查看文件被哪个程序锁定:WhoLockMelinux字符拼装ASCII超大字母:Banner...

2020-08-23 15:41:10 98

原创 Python常用参考

Python常用参考代码1:python 枚举Enum类的使用from enum import Enumclass Color(Enum): red = 1 orange = 2 yellow = 3 green = 4 blue = 5 indigo = 6 purple = 72:Python实现线程之间的通信import _thread3:python全局变量引用与修改def func(): global a a

2020-08-23 14:59:10 165

原创 Centos7.2安装XWIKI 11.10.5

安装前的准备1:根据需求确认xwiki版本,不同版本的xwiki支持特性不一样。    这里我安装了官网推荐的11.10.5。2:根据xwiki版本确认对应的依赖环境。    1) Java支持:我安装的版本是11.10.5,所以选择安装Java8。    2) Servlet支持:我安装的版本是11.10.5,所以选择我选择的是主流的Tomcat7.0。 &

2020-08-23 12:16:50 756

原创 pyinstaller打包exe出错处理

错误1:Error running the exe file in Windows “Failed to execute script pyi_rth_pkgres”解决方式: https://github.com/pyinstaller/pyinstaller/issues/2137pip uninstall pyinstallerpip install https://github.com/pyinstaller/pyinstaller/archive/develop.zip错误2:OSEr

2020-06-16 11:10:18 253

原创 Ubuntu18.04共享文件夹

Ubuntu18.04共享文件夹1:安装sambasudo apt-get updatesudo apt-get install samba2:创建一个目录并给权限创建目录:sudo mkdir /home/test/share给创建的这个目录设置权限sudo chmod 777 /home/test/share3:修改samba配置文件,设置为共享目录sudo nano /etc/samba/smb.conf在配置文件smb.conf的最后添加下面的内容:[share]commen

2020-06-03 15:22:56 2557

空空如也

空空如也

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

TA关注的人

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