![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
工具使用
文章平均质量分 60
guotianqing
这个作者很懒,什么都没留下…
展开
-
docker服务及镜像开机自动启动
环境docker安装在Centos7上,机器重启后,发现docker里服务都没启动。查看了一下:% docker ps -aCannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?原来是docker服务没有启动。需要把它设置为开机启动。设置docker服务开机启动先启动服务,再设置为开机自动启动:# 启动服务% systemctl start do原创 2022-04-15 11:23:00 · 9800 阅读 · 0 评论 -
一行命令设置vscode远程连接免密登录
远程连接vscode作为在Windows终端连接到Linux服务器直接进行代码编辑的工具,使用广泛。连接的原理是ssh,使用Remote-ssh插件。具体的连接步骤比较简单,简略说明一下:点击左下角的绿色按键: SSH在弹出的命令行中选择第一个:remote-ssh: connect to host选择增加一个新主机后面按提示填写主机地址、用户名、密码等信息即可连接成功等待底层命令行输出窗口显示连接成功后,可打开服务器上文件夹、编辑文件,非常方便。但是,每次重新连接后,都要输入密码,原创 2022-02-21 13:08:06 · 1520 阅读 · 0 评论 -
批量更新指定目录下git仓库的一种方式
需求有一些github上的项目,学习使用时拉取的master,过了一段时间,想更新到最新,需要一个一个目录进去执行git pull。当目录比较多时,或者需要经常同步更新时,就比较繁索。写个小脚本,分分钟搞定它吧!shell脚本我平时在Linux上开发,于是shell脚本是第一选择。其实在windows上,使用git bash也是一样。废话不说,代码如下:#!/bin/bashfunction showGreen(){ echo -e "\033[32m $1 \033[0m原创 2022-01-25 15:51:52 · 1330 阅读 · 0 评论 -
关于git中的游离分支
游离分支所谓游离分支,就是处于detached状态的分支,这里显示的不是分支的名称(如,main),而是显示一串hash值:ubun:~/work/@e9781a5 % gstHEAD detached at e9781a5Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to d原创 2022-01-12 15:35:32 · 3291 阅读 · 0 评论 -
CMake识别操作系统平台及Linux发行版本是ubuntu/centos
识别操作系统平台以下代码可以识别 Windows、Linux、Macos三种类型的操作系统平台:IF (CMAKE_SYSTEM_NAME MATCHES "Linux") MESSAGE(STATUS "current platform: Linux ") ELSEIF (CMAKE_SYSTEM_NAME MATCHES "Windows") MESSAGE(STATUS "current platform: Windows") ELSEIF (CMAKE_SYSTEM_N原创 2021-12-01 18:02:30 · 3937 阅读 · 0 评论 -
CMake中执行shell命令之execute_process、add_custom_target和add_custom_command
背景以下情况可能需要在CMake中执行shell脚本:cmake未提供的功能而实际构建中又需要时,如获取Linux发行版本项目构建时需要执行脚本才能完成,如boost构建过程有的需要shell脚本的返回值,而有的不需要,这个关系不大。本文主要关注的是在cmake中执行shell脚本的方法。主要涉及三个命令:execute_process、add_custom_target和add_custom_command。execute_process通过execute_process方法可以执行原创 2021-12-01 17:59:30 · 16830 阅读 · 3 评论 -
CMake/CMakeLists精简模板
关于CMake由于CMake的跨平台特性,现在已经被越来越多的项目使用。关于CMake的基础介绍,请参考cmake入门实践。本文提炼了一个精简的CMakeLists文件,通过适当的修改,可用于简单的项目中。模板直接上CMakeLists文件:# 指定最低版本cmake_minimum_required(VERSION 2.8)# 指定项目名称project(demo)# 为当前路径以及子目录的源文件加入由-D预编译定义# add_definitions(-DFOO -DDEBU原创 2021-03-26 18:41:39 · 259 阅读 · 0 评论 -
Bazel 4.0.0在Linux下的安装(附国内安装包下载源)
简介Bazel是Google开源的编译构建工具,以Monolithic Repository为理念。与makefile & CMake不同,Bazel另起炉灶,采用client/server运行模式,为云编译而生。Bazel工具将编译过程分三个阶段:Load Phase/Analysis Phase/Execution phase。研发人员实现workspace/build/.bzl三种文件,Bazel执行这些文件生成action graph,执行action来构建项目。Bazel优点:原创 2021-03-11 14:39:19 · 1675 阅读 · 2 评论 -
npm安装包报错问题及解决
npm ERR! code EAI_AGAIN如下图:这个错误网上有多种解释,也有多种解决方法。我这里的解决方法是修改了npm的源。原来使用的是 http://mirrors.cloud.tencent.com,修改为:https://registry.npm.taobao.org。修改方法:npm config set registry https://registry.npm.taobao.org,输入npm config get registry 验证成功。这样配置后,会写入~/.np原创 2020-09-25 08:32:30 · 23523 阅读 · 0 评论 -
Docker入门简介
简介Docker源于集装箱。一个集装箱装一样东西,多个集装箱可以装在同一个船上,各个集装箱之间互不影响。类似于集装箱的标准化,Docker是一个虚拟环境容器,可以将开发环境、代码、配置文件等一并打包到这个容器中,并发布和应用到任意平台中。应用场景举例:不同的应用程序可能会有不同的应用环境,各种不同的环境可能还会有冲突。常规来讲,我们可以在服务器上创建不同的虚拟机在不同的虚拟机上放置不同的应用,但是虚拟机开销比较高。docker可以实现虚拟机隔离应用环境的功能,并且开销比虚拟机小。如果开发软件原创 2020-06-04 18:45:35 · 178 阅读 · 0 评论 -
windows查看进程中线程信息
简介经常在Linux下开发程序,使用习惯了 ps, top, gdb, strace等调试命令,用起来挺方便。现在需要在在windows下调试,也查找了些工具和方法,作一小结。不当之处,请不吝指出。以Windows Server2008R2系统为例。使用资源管理器这个方法简单方便,但所能查看到的信息也有限。步骤如下:在状态栏右键——打开任务管理器——进程——菜单 查看 —— 选择...原创 2020-02-20 14:32:50 · 18645 阅读 · 1 评论 -
c++单元测试之gtest测试框架快速上手
单元测试模块级测试,与系统测试、集成测试等不同,它是对软件模块细分后的单元进行的细粒度测试,应该在开发过程中进行。单元测试( Unit Test ,模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确,通过编写单元测试可以在编码阶段发现程序编码错误,甚至是程序设计错误。单元测试有很多好处:增加开发人员的信心修改代码后进行快速的回归测试提高开发质...原创 2020-01-20 18:41:34 · 9102 阅读 · 0 评论 -
Linux动态分析工具valgrind使用入门
简介Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。它用来构建动态分析工具, 主要具有以下功能:Memcheck,重量级内存检测工具,使用广泛Helgrind,检测多线程中的数据竞争问题Callgrind,检查程序中函数调用过程中出现的问题Cachegrind,检查程序中缓存使用出现的问题Massif,检查程序中堆栈使用中出现的问题Exten...原创 2020-01-17 18:49:56 · 1967 阅读 · 1 评论 -
c++日志库log4cplus快速入门
简介log4j 用于Java,log4cplus从它衍生而来,用于c++。用于c++的日志库还有很多,如 log4cxx等,可以根据实际需求选择使用。log4cplus 的地址:https://github.com/log4cplus/log4cplus。log4cplus是一种易于使用的C ++日志记录API,可提供线程安全,灵活且任意粒度的日志管理和配置控制。本文旨在快速使用。...原创 2020-01-10 18:39:03 · 10743 阅读 · 1 评论 -
cmake入门实践
cmake与make/scons类似,cmake也用来管理工程。cmake是kitware公司及开源开发者在开发工具套件时的衍生品,目前是一个独立的开源项目,诞生于2001年,访问官网获取更多信息:www.cmake.org 。cmake的优缺点:跨平台,并可生成native编译配置文件。支持在Linux平台生成Makefile,在Apple平台生成xcode,在Windows平台生成...原创 2019-12-23 18:22:07 · 621 阅读 · 0 评论 -
git分支创建、查看、删除、跟踪
查看本地分支查看本地分支:git branch查看所有分支,包括远程分支:git branch -a删除本地分支删除本地分支:git branch -d [branch_to_delete_name],如果本地分支未完全合并到master,删除会失败强制删除:git branch -D [branch_to_delete_name],谨慎操作,确认永远不再需要该分支时才能执行...原创 2019-11-15 09:34:20 · 749 阅读 · 0 评论 -
win10 vs2015编译使用openssl1_1_1d
安装步骤根据官方文档提示,按下列步骤安装:# on Windows (only pick one of the targets for configuration):$ perl Configure { VC-WIN32 | VC-WIN64A | VC-WIN64I | VC-CE }$ nmake$ nmake test$ nmake install简单吧,安装的这一路上,报...原创 2019-11-12 19:01:46 · 1432 阅读 · 1 评论 -
win10 vs2015 cmake编译使用libevent-2.1.11-stable
libeventlibevent可以简单理解为事件驱动库,它会在下列事件发生时调用回调函数:指定的事件在fd上发生定时器触发信号超时使用它可以替代事件驱动的网络服务中的事件循环。应用程序只需要调用 event_dispatch() ,然后就可以在不改动事件循环的情况下动态增删指定的事件。它支持 /dev/poll, kqueue(2), event ports, POSIX s...原创 2019-11-12 18:31:23 · 3219 阅读 · 2 评论 -
RabbitMq使用中常见错误小结
最近使用RabbitMq作为消息中间件,使用中遇到了一些问题,这里作一小结,供新手参考。pika.exceptions.ProbableAuthenticationError: ConnectionClosedByBroker: (403) ‘ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. Fo...原创 2019-10-25 18:16:28 · 20922 阅读 · 1 评论 -
RabbitMq入门简介
MQMessage Queue,即消息队列,可以认为是存储消息的管道,用来做消息传输。消息队列是应用间的通信方式。通过消息中间件,发送端在发送消息后可以立即返回,由中间件确保消息的可靠传递。发送端和接收端可以都不知道对方的存在,达到解耦。使用MQ的场景的类比:信件的邮寄,它有以下特征:发信人把信件放入邮箱。邮局收件人从邮箱收取信件,邮局接收后运送到目的地,再派邮差把邮件送出去。收信...原创 2019-10-23 19:24:41 · 281 阅读 · 0 评论 -
git补丁的生成与应用(由一个amend问题引出)
问题描述最近开发时,我把本地的修改amend到了已经merged的提交上了!我是这样做的:在master上新建一个分支,在该分支上进行开发,完成后提交,提交时执行了git commit --amend,导致本次修改提交到了前次已经merged的提交上。这里,通过git status查看时,本地所有修改内容已经提交。通过git log查看时,可以看到前次merged的提交信息,但hash...原创 2019-10-18 11:22:54 · 470 阅读 · 0 评论 -
c++使用Json之jsoncpp简介
JsonJSON: JavaScript Object Notation(JavaScript 对象表示法),是存储和交换文本信息的语法。它类似 XML,但比 XML 更小、更快,更易解析。JSON 是轻量级的文本数据交换格式,独立于语言,具有自我描述性,更易理解。JSON 文本格式在语法上与创建 JavaScript 对象的代码相同,由于这种相似性,无需解析器,JavaScript 程序...原创 2019-07-01 08:56:27 · 27974 阅读 · 0 评论 -
Windows与Linux互传文件的几种方式
概述Win系统之间互传文件的方式非常多,也比较简单,如通过系统的共享文件夹、飞Q、QQ、微信等,但Linux系统对这些应用的支持不是很好。在工作中,经常会混合使用Windows与Linux系统。一般情况下,开发用的pc机是Win系统的,而服务器是Linux。在这种情况下,经常是本地Win系统通过xshell或者SecureCRT通过ssh远程登录到Linux服务器进行开发,如果需要把本地文...原创 2019-06-16 16:17:08 · 60814 阅读 · 1 评论 -
vs code 常用快捷键
使用vs code进行远程开发环境配置,请参考 https://www.cnblogs.com/byteHuang/p/10838006.html设置文件编码vs code是微软的,而我们常用来远程连接到Linux服务器进行代码编辑默认使用utf-8 with BOM和CRLF,位于界面右下角,点击后在上方选项栏中修改分别修改为save with encoding中的utf-8和...原创 2019-06-19 19:05:26 · 2197 阅读 · 0 评论 -
Source Insight4.0常用设置
1. 显示文档文件名标签在Source Insight4.0中打开多个文件时,在文档显示窗口会显示文件内容,但新打开的文档会覆盖掉原先的文档。且不会显示每个文档的文件名标签,此时如果想要查看原来的文件,就要找到原来的文件再打开,特别麻烦。在SI4.0中设置时,选择 view-tab即可打开文件名标签功能(view下可找到,具体菜单名可能不对,忘记了)。此时,即可舒适畅快的享受SI的各项功能...原创 2019-01-20 20:26:16 · 3000 阅读 · 0 评论 -
vs2015实用快捷键
没有分类排版,请使用 ctrl + f 页面查找需要的内容。快速删除行ctrl + shift + L注释代码块ctrl + k + c取消:ctrl + k + u快速复制行在行的空白处直接 ctrl + c快速剪切行ctrl +x快速跳转到代码块尾/头ctrl + ](vim中的%功能)快速缩进tabshift + t...原创 2019-07-30 15:57:15 · 160 阅读 · 0 评论 -
rapidjson使用小结
使用Document时内存问题rapidjson的使用简介可以参考rapidjson使用简介。使用rapidjson解析时,简单的使用方法是使用Document对象的parse方法直接搞定,如下:const char *json = "{\"index\": 5}";Document d;d.Parse(json);//直接使用 int i = d["index"]; 获取值这...原创 2019-08-19 08:58:39 · 1958 阅读 · 0 评论 -
git tag的查看、添加、推送和删除
标签的作用就像我们读书时遇到重要的内容要加个书签,以便随时查看该内容一样,给代码仓库打个标签,也可以随时切换到该标签对应的提交,从而获取该标签所对应的副本。标签比较多用于发布程序时,或者做了重大修改可能导致兼容性问题时,这里标签可以起到很好的作用。查看标签输入以下命令查看所有标签。git tag% git tagv0.1v1.0该命令以字母顺序列出标签。如果仓库中标签很多,...原创 2019-08-26 10:29:00 · 2504 阅读 · 1 评论 -
使用FlatBuffers序列化数据
序列化简介序列化主要用于需要持久化或通过网络传输的应用中。序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。以网络传输为例,互联通讯的双方需要采用约定的协议,使用不同协议的机器之间即使有数据的传输,也无法实现正确的通信。就像...原创 2019-08-27 13:40:44 · 4363 阅读 · 3 评论 -
FlatBuffers使用详解
简介FlatBuffer 是一个二进制 buffer,它使用 offset 组织嵌套对象(struct,table,vectors,等),可以使数据像任何基于指针的数据结构一样,就地访问数据。然而 FlatBuffer 与大多数内存中的数据结构不同,它使用严格的对齐规则和字节顺序来确保 buffer 是跨平台的。FlatBuffers 的主要目标是避免反序列化。这是通过定义二进制数据协议来...原创 2019-09-10 10:39:23 · 12269 阅读 · 0 评论 -
git提交中文信息报错
使用git一段时间了,还是会遇到一些问题,这里作一总结,后续有新问题了补充。在提交信息中输入中文后出错现象add后commit,在vim中输入了中文提交信息,保存退出时出错,提示如下:网上查了一些方法,不好用。于是自己琢磨了一下,测试好用。分析.git/COMMIT_EDITMSG是一个文件,每次提交时会自动生成。错误信息大意是转换失败,大概也就是中文转换时失败了。使用file查...原创 2019-09-25 18:31:16 · 1480 阅读 · 0 评论 -
使用UltraEdit手记
背景最近需要处理一些数据,以前总是使用UltraEdit处理诸如文本、二进制数据,有时也简单地看代码、脚本等。用习惯了,感觉也顺手了。用UE查看数据很方便,但复制数据时却遇到了一点麻烦。使用工具生成了一些二进制存储的随机数,打开后会同时显示十六进制和字符。这是,选中数据复制时,粘贴的却是一堆乱码,无法直接粘贴到想要的十六进制数据。粘贴所需要的数据经过笔者亲自实践,简单几步即...原创 2018-09-15 20:24:30 · 5068 阅读 · 0 评论