自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

NeilZhy

与人为善,天道酬勤

  • 博客(148)
  • 问答 (3)
  • 收藏
  • 关注

原创 网络概述

网络概述理清网络提纲知识

2017-12-23 18:49:43 1900

原创 CMake 打包已经存在的动态库生成 target

一. 背景在 CMakeLists.txt 中,某模块 A 通过 add_subdirectory 引入模块 B ,模块 B 通过 add_subdirectory 引入模块 C。模块 C 里面本身就是一个开源的动态库,比如 libtask。目的想要将 C 模块打包成一个 Target ,以便在 A 模块中中使用方便。二. 旧版本实现和存在问题A 模块不直接使用 C 模块,但是 A 模块使用到了 B 模块,B 模块编译依赖 C 模块,就需要导致 A 编译时要通过下面的方式引入 C 模块 incl

2021-12-01 19:53:23 2866

原创 实时操作系统与分时操作系统

实时操作系统与分时操作系统的区别分时操作系统与实时操作系统

2021-06-18 14:50:35 578

原创 Ubuntu 将 /home 或 /var 目录挂载到新的分区

背景在使用 docker 的过程中,docker 会将某些产物放到 /var/lib/docker/volumes 这会占用很大的跟目录磁盘空间,于是想办法将 /var 目录挂载到另一个一个单独的磁盘上面。参考链接如下:Ubuntu将var目录挂载到新硬盘步骤1. 查看当前磁盘空间df -h [目录名]比如 df -h 能够查看整个系统的磁盘情况。2. 创建新目录上图中我已经创建了一个新的目录,是 /media/var ,这里再重新操作一遍。sudo mkdir /media/var

2021-04-22 14:51:22 2514

原创 on-my-zsh git 仓库下运行卡顿

在 oh-my-zsh 进入 包含 git 仓库目录时,执行 ls 时会比较卡顿原因:oh-my-zsh 要获取 git 更新信息解决办法:设置 oh-my-zsh 不读取文件变化信息(在 git 项目目录执行下列命令)$ git config --add oh-my-zsh.hide-dirty 1如果还是慢,可以再设置 oh-my-zsh 不读取任何 git 信息$ git config --add oh-my-zsh.hide-status 1...

2020-11-26 11:35:26 527

原创 git 快速复制一个新项目

gitlab创建项目a及一个主分支master本地整体复制已有项目b本地克隆gitlab上新创建的项目a(git clone gitlab地址)将本地克隆过来的a文件夹下的.git目录拷贝到b项目下(cp -r .git …/b,注意是两个点,不是三个点,写两个点后,编辑器一直给输出三个点,晕)删除本地克隆过来的项目a,将本地的项目b改成a(这时候的.git已经是与gitlab远端项目的关联文件了)进入b项目下创建分支并切换(git checkout -b ‘1-admin-lsq’)本地分支与

2020-11-26 11:09:00 5167

原创 工厂方法模式和抽象工厂模式

工厂方法模式和抽象工厂模式工厂方法模式抽象工厂模式总结:工厂方法模式#include <string>#include <iostream>// Abstractclass Splitter{private: /* data */public: Splitter(/* args */); virtual ~Splitter();p...

2020-04-19 18:24:18 246

原创 展示gtest测试结果 -- 将gtest输出的xml结果转化成html展示

问题我们在使用gtest工具进行测试时, 一般结果会直接输出到终端, 对阅读很不友好, 如何能够利用gtest测试的结果, 做成一个可以展示的html页面, 让gtest测试结果看上起一目了然, 清清楚楚, 是今天讨论的话题概述采用常规的方式, 直接在百度搜索, 关于展示gtest测试结果文章很少, 有的一些, 因为需要安装各种依赖或者其他因素, 用起来也不是非常友好.但是经过不懈的搜索,...

2020-02-24 21:40:10 11854 5

转载 Cmake 交叉编译

转载自 http://zhixinliu.com/2016/02/01/2016-02-01-cmake-cross-compile/CMake交叉编译CMake的使用,以及如何将一个项目移植到Android。CMake的用法先让我们简单学习回顾一下cmake的基本知识:基本流程以linux平台为例,使用 CMake 生成 Makefile 并编译的流程如下:编写 CMake 配...

2019-09-05 20:31:35 514

原创 CMake学习资料

CMake 官方 FAQhttps://gitlab.kitware.com/cmake/community/wikis/FAQCMake 官方文档https://cmake.org/cmake/help/cmake2.4docs.htmlCMake 视频教程https://www.youtube.com/watch?v=CLvZTyji_UwCMake 维基教科书https://z...

2019-07-18 10:02:57 205

原创 Cmake 实例学习 一

一. 第一个简单的例子在一个目录下面实现一个简单的 hello world 程序使用cmake进行构建的时候,每个目录下面都要有一个 CMakeLists.txt 的文件如果是一个稍微大的工程,有多级目录,在上级目录中的 CMakeLists.txt 中会有定义要求编译子目录的逻辑当前目录中定义了一个main.c 和 CMakeLists.txt 文件,两个文件的内容分别如下main....

2019-07-13 15:02:02 371

原创 C++ 实现设计模式 -- 工厂模式

#include <iostream>class Shape{ public: virtual void drawshape() = 0;};class DrawCircle : public Shape{ public: void drawshape() { std::cout << "Circle\n"; }}; clas...

2019-05-16 16:09:03 243

原创 因链接静态库先后顺序不正确,引起符号定义找不到

问题项目中需要链接多个静态库,在编译的时候报错如下sdi_io.cpp:(.text._ZN13sdi_H264EncIO7DataPopEPm+0x30):对‘H264ENC_StatusGet(H264ENC_Status_t&)’未定义的引用可能原因是符号确实没有定义,而本文出现这个问题的原因是,链接的静态库有前后的依赖顺序解决方案方法一:修正静态库的链接顺序:可以通过手...

2019-05-15 11:02:06 3174

原创 OpenC 仿射变换

仿射变换(Affine Transformation)又称仿射映射,是指在几何中,一个向量空间进行一次线性变化并加上一个平移,变换位另一个的向量空间的过程。一个任意的仿射变换都能够表示为乘以一个矩阵(线性变换)接着加上一个向量(平移)的形式。仿射变换来表示如下三种常见的变换形式:旋转(线性 变换)平移(向量加)缩放(线性变换)...

2019-04-29 18:19:40 363

原创 OpenCV 像素存储

像素存储OpenCV 中图像矩阵的大小取决于所用的颜色模型,更准确的说是取决于图像所用到的通道数。如果使用的是灰度图,矩阵大概如图所示:如果使用的是多通道的图像,矩阵中的列会包含多个子列,子列的个数和通道数相等。例如 RGB 颜色模型的矩阵大致如下图所示:很多情况下,因为内存足够大,可以实现连续存储,因此图像中的各行能够一行一行的连接起来,形成一个长行。连续存储有助于提升图像扫描速度,...

2019-04-25 10:03:44 507

原创 QT 中使用 OpenCv 的 CascadeClassifier 报错

问题在 QT 中调用 OpenCv 的 CascadeClassifier 进行人脸框检测的时候,在构造函数中进行检测器的初始化,随后调用相机读取图片的时候就会报错,报的错误是 Segment Fault (段错误)解决尝试使用 gdb,valgrind 等解决没有进展在 QT 中进行编译的时候,报了一个警告,大概意思是说 libopencv_objdetect.so.3.4.3 和 l...

2019-04-18 16:28:47 1417

原创 qt 找不到 -lpulse-mainloop-glib,找不到 -lpulse问题

问题:使用 QT 编写视频展现程序报错找不到运行时库文件解决办法:首先 sudo find / -name libpulse.so*然后 sudo cp /usr/lib/x86_64-linux-gnu/libpulse.so.0 /usr/lib/libpulse.so对于libpulse-mainloop-glib首先find / -name libpulse-mainloop-g...

2019-04-17 23:52:53 1379

原创 gdb 调试

传参如果程序执行的时候需要加入参数,如./sample aa bb使用 gdb 的时候可以使用如下方式gdb --args ./sample aa bb执行启动 gdb 之后,直接使用 r,就是 run 的意思,或者可以使用 b 加一个断点进行调试。处理信号如果在使用的时候,遇到类似下面的报错Thread 2 “sample_sd_abnor” received s...

2019-03-29 20:34:11 535

原创 valgrind 使用 kcachegrind 查看函数运行时间

安装首先安装运行分析函数时间的工具 kcachegrind下载安装包 http://kcachegrind.sourceforge.net/,下载最新的 tar.gz 文件解压文件,进入解压之后的目录,从 README 中可以找到安装方式,这里记录一下cmake .make -j8sudo make install中间过程中遇到的一些,cmake的时候出问题,找不到一个依赖包CM...

2019-03-15 14:43:38 1951

原创 tar 打包问题

项目中使用到 tar 文件,同一个 tar 文件解压之后在压缩,在程序执行的时候不能使用了原因是 tar 对文件名长度有限制,当文件名过程的时候,使用 --format=ustar 进行压缩...

2019-03-14 20:56:59 504

原创 s32v 开发板安装 apex 驱动

安装驱动首先要获取到 apex.ko 文件,这个应该是硬件厂商提供,执行下面命令安装首先需要给 apex.so 文件加上可执行权限insmod apex.ko查看是否安装成功执行下面命令,查看是否安装成功,如果安装成功,执行的结果中会有 apexlsmod使用测试程序测试硬件厂商会提供测试程序,成功安装 apex 的设备可以通过测试程序测试结果...

2019-03-13 15:44:41 480

原创 网线直连开发板

pc 端配置点击pc端无线链接图标编辑链接以太网编辑IPv4设置方法:与其他计算机共享根据putty获取的动态ip使用ssh登录解决 ip 无法登录问题设置 pc 端 ip 和开发板 ip 在同一个网段比如开发板 ip 是 10.42.0.123可以设置自己机器的 ip 为 10.42.0.11sudo ifconfig xxxxx 10.42.0.11...

2019-03-13 13:33:57 900

原创 putty 串口登录开发板

安装putty多个平台均可以安装puttypc端配置使用串口线连接开发板ls /dev查看是否出现类似于ttyUSBx的文件sudo putty弹出页面,选择SerialSerial line填写/dev/ttyUSBxSpeed填写115200(根据不同开发板,选择不同参数)依次点击Load,Open弹出终端,回车,使用root登录,查看ip使用ssh登录...

2019-03-13 11:10:13 2191

原创 嵌入式开发板设置无密码登录

本次配置需要修改的ssh登录的配置文件vi /etc/ssh/sshd_config允许root用户远程登录设置PermitRootLogin参数值为yes#LoginGraceTime 2mPermitRootLogin yes#StrictModes yes#MaxAuthTries 6#MaxSessions 10允许无密码登录设置PermitEmptyPasswor...

2019-03-13 10:23:42 1621 2

原创 opencv 1 图像载入、显示和输出

三个函数imread()namedWindow()inshow()1. imread函数原型:Mat imread(const string&amp; filename, int flags = 1 );参数解析:const string&amp; finename将要载入的图片路径名。Windows操作系统下面支持如下类型的图片:Windows位图 - *.bmp...

2019-03-02 20:20:01 294

原创 valgrind massif内存分析工具

使用方式valgrind --tool=massif ./a.outa.out 是可执行程序,当程序执行结束之后,会生成一个分析报告,分析报告的名称一般为 massif.out.pid 。如果是循环程序,可以使用 top 查看内存,当内存增长到一定程序之后 Ctrl C 掉,也会生成分析报告。在 x86 平台安装 massif visualizer 。Ubuntu平台的安装方式为sudo...

2019-03-02 10:18:47 1484

原创 redis学习 -- 简单动态字符串

Redis没有使用C语言字符串的形式,通过’\0’作为结尾,而是使用了简单动态字符串(simple dynamic string)。当Redis使用的字符串不需要修改字符串的内容的时候,可以使用C语言提供的字符串,当需要修改内容的时候就使用的是简单动态字符串。Redis键值对的操作中,都是使用的简单动态字符串的方式。这里可以把简单动态字符串理解成一个对象,这个对象的底层保存着一个字符串。SD...

2018-10-09 21:36:29 418

原创 2. 两数相加

题目给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -&gt; 4 -&gt; 3) + (5 -&gt; 6 -&gt; 4)输出:7 -&gt; 0 -&gt; 8原因:342 + 465 = 807方法一思路...

2018-09-10 10:16:01 209

原创 1. 两数之和

方法一 – 暴力求解两层for循环方法二 – 两遍哈希表步骤:遍历数组,将数据中的元素放入到哈希表中遍历数组,从哈希表中寻找是否有相加和为target的数据注意点:第二次遍历数组的时候,第一次遇到相加和为target的数据的时候,就应该退出循环,如果不退出,将会有两个结果,比如第一次匹配到了1,2,那么还会匹配一次2,1代码:class S...

2018-09-09 14:22:58 338

原创 括号匹配算法

思路大体思路:数据结构选用栈,读到左括号时入栈,读到右括号时判断是否匹配,匹配则左括号出栈,非括号字符则继续往下读代码#include &lt;iostream&gt;#include &lt;stack&gt;#include &lt;string&gt;using namespace std;bool is_match_parentheses(const stri...

2018-09-09 09:30:40 305

原创 awk 6.0 — awk模式之二

awk的语法 awk [options] ‘Pattern {Actions}’ file1,file2… 之前介绍了三种模式:空模式,关系运算模式,BEGIN/END模式正则模式模式可以理解成条件,正则模式就是满足正则表达式条件的,就执行相应的动作,否则不执行。 如果我们想要找到在/etc/passwd文件中,以“_krb”开头的内容该如何找呢 gre...

2018-08-22 08:51:08 251

原创 awk5.0 — awk模式之一

再次重申awk的语法 awk [options] ‘Pattern {Actions}’ file1,file2…awk模式,在之前的文章中简单使用了BEGIN和END。这里的模式,其实我们可以理解成是条件,awk是一行行处理数据的,如果满足某个条件awk就处理某一行数据,如果不满足就不处理,这就可以理解成模式。 意思就是,awk在一行行处理文本的时候,如果这行文本满足某个模式就处...

2018-08-21 08:43:07 683

原创 awk4.0 — awk格式化

awk格式化使用printf函数,类似于C语言中的printf函数 比如 awk '{printf "%s\n", $1}' test1上面的方式是awk每次处理一行,然后进行替换的,如果我们想要传入多个参数,此时就需要多个格式化 ...

2018-08-21 08:23:34 407

原创 awk3.0 — awk变量

awk有一些内置变量和外置变量,内置变量就是awk自带的变量,用户可以拿来直接使用,如FS,OFS等 awk常用内置变量如下几种: FS:输入单词分隔符,默认是空格 OFS:输出单词分隔符,默认是空格RS:指定输入时候的换行符(awk是一行行处理数据的) ORS:指定输出的符号,替代换行符(awk以换行符区别一条数据) NF:一条数据单词的个数,常用来输出最后...

2018-08-21 08:00:42 231

原创 awk3.0 — awk变量

awk有一些内置变量和外置变量,内置变量就是awk自带的变量,用户可以拿来直接使用,如FS,OFS等 awk常用内置变量如下几种: FS:输入单词分隔符,默认是空格 OFS:输出单词分隔符,默认是空格RS:指定输入时候的换行符(awk是一行行处理数据的) ORS:指定输出的符号,替代换行符(awk以换行符区别一条数据) NF:一条数据单词的个数,常用来输出最后...

2018-08-20 08:32:35 546

原创 awk2.0 — awk分隔符

再次重申awk的语法 awk [options] ‘Pattern {Actions}’ file1,file2…awk默认分隔符是空格,分隔符有分为“输入分隔符”和“输出分隔符”。 输入分隔符:awk在处理每一行文本的时候,以默认的空格将文本分隔成一个个单词作为变量。 输出分隔符:awk处理完文本之后,输出显示的时候,以空格分开。 输入分隔符如果文本是空格隔...

2018-08-18 09:13:13 1285

原创 awk1.0 — awk基础

简介grep,sed,awk被称为Linux文本处理的三剑客,各有特点 grep:适合文本的匹配和查找 sed:编辑匹配到的文本 awk:对文本进行格式化输出 awk简介awk的基本语法是awk [options] 'Pattern {Actions}' file1,file2...Actions指的是工作,awk擅长文本输出,最常用的动作是print和pri...

2018-08-17 09:31:20 295

原创 vim配置

vim ~/.vimrc将下面的文件填写进去就好了set nuset tabstop=4set nobackupset expandtabset autoindentset bg=darksyntax onset mouse=afiletype plugin indent onset cindent shiftwidth=4set ts=4set sw=4highl...

2018-08-16 11:36:53 241

原创 epoll

select,poll,epoll都是多路复用的一种机制,多路复用就是通过一种 机制监听多个文件描述符,当文件描述符就绪之后,就通知相关的程序就行读写的操作 select,poll实际上是让内核去不断的轮询,看看时间是否发生了,文件描述符的拷贝,只要一次从用户态拷贝到内核态 epoll是通过回调函数的机制,当时文件描述符就绪之后,就会将唤醒等待队列上面的等待者,等待着调用回调函数,就就...

2018-08-16 08:01:58 585

原创 搜索引擎Killed原因排查

问题描述腾讯云单核2G内存,运行程序的时候,程序有时会挂掉了,设置ulimit -c unlimited之后,想要core文件,结果程序运行的时候,直接提示killed,没有出现core文件调研查询killed的原因多是因为内存不足了,系统自动将程序杀死,此时没有出现core文件 使用free -h查看内存使用情况[root@VM_125_247_centos serv...

2018-08-16 07:58:47 658

空空如也

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

TA关注的人

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