自定义博客皮肤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

与人为善,天道酬勤

原创 网络概述

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

2017-12-23 18:49:43 1158 0

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

工厂方法模式和抽象工厂模式工厂方法模式抽象工厂模式总结: 工厂方法模式 #include <string> #include <iostream> // Abstract class Splitter { private: /* data */ public: ...

2020-04-19 18:24:18 61 0

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

问题 我们在使用gtest工具进行测试时, 一般结果会直接输出到终端, 对阅读很不友好, 如何能够利用gtest测试的结果, 做成一个可以展示的html页面, 让gtest测试结果看上起一目了然, 清清楚楚, 是今天讨论的话题 概述 采用常规的方式, 直接在百度搜索, 关于展示gtest测试结果文...

2020-02-24 21:40:10 303 0

转载 Cmake 交叉编译

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

2019-09-05 20:31:35 87 0

原创 CMake学习资料

CMake 官方 FAQ https://gitlab.kitware.com/cmake/community/wikis/FAQ CMake 官方文档 https://cmake.org/cmake/help/cmake2.4docs.html CMake 视频教程 https://www.yo...

2019-07-18 10:02:57 52 0

原创 Cmake 实例学习 一

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

2019-07-13 15:02:02 94 0

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

#include <iostream> class Shape { public: virtual void drawshape() = 0; }; class DrawCircle : public Shape { public: void drawshape()...

2019-05-16 16:09:03 59 0

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

问题 项目中需要链接多个静态库,在编译的时候报错如下 sdi_io.cpp:(.text._ZN13sdi_H264EncIO7DataPopEPm+0x30):对‘H264ENC_StatusGet(H264ENC_Status_t&)’未定义的引用 可能原因是符号确实没有定义,而本文...

2019-05-15 11:02:06 693 0

原创 OpenC 仿射变换

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

2019-04-29 18:19:40 131 0

原创 OpenCV 像素存储

像素存储 OpenCV 中图像矩阵的大小取决于所用的颜色模型,更准确的说是取决于图像所用到的通道数。 如果使用的是灰度图,矩阵大概如图所示: 如果使用的是多通道的图像,矩阵中的列会包含多个子列,子列的个数和通道数相等。例如 RGB 颜色模型的矩阵大致如下图所示: 很多情况下,因为内存足够大,可...

2019-04-25 10:03:44 173 0

原创 QT 中使用 OpenCv 的 CascadeClassifier 报错

问题 在 QT 中调用 OpenCv 的 CascadeClassifier 进行人脸框检测的时候,在构造函数中进行检测器的初始化,随后调用相机读取图片的时候就会报错,报的错误是 Segment Fault (段错误) 解决 尝试使用 gdb,valgrind 等解决没有进展 在 QT 中进行编...

2019-04-18 16:28:47 377 0

原创 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 对于libpul...

2019-04-17 23:52:53 266 0

原创 gdb 调试

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

2019-03-29 20:34:11 132 0

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

安装 首先安装运行分析函数时间的工具 kcachegrind 下载安装包 http://kcachegrind.sourceforge.net/,下载最新的 tar.gz 文件 解压文件,进入解压之后的目录,从 README 中可以找到安装方式,这里记录一下 cmake . make -j8 su...

2019-03-15 14:43:38 581 0

原创 tar 打包问题

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

2019-03-14 20:56:59 111 0

原创 s32v 开发板安装 apex 驱动

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

2019-03-13 15:44:41 205 0

原创 网线直连开发板

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

2019-03-13 13:33:57 330 0

原创 putty 串口登录开发板

安装putty 多个平台均可以安装putty pc端配置 使用串口线连接开发板 ls /dev 查看是否出现类似于ttyUSBx的文件 sudo putty 弹出页面,选择Serial Serial line填写/dev/ttyUSBx Speed填写115200(根据不同开发板,选择不同参数) ...

2019-03-13 11:10:13 779 0

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

本次配置需要修改的ssh登录的配置文件 vi /etc/ssh/sshd_config 允许root用户远程登录 设置PermitRootLogin参数值为yes #LoginGraceTime 2m PermitRootLogin yes #StrictModes yes #MaxAuthTr...

2019-03-13 10:23:42 355 0

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

三个函数 imread() namedWindow() inshow() 1. imread 函数原型: Mat imread(const string&amp; filename, int flags = 1 ); 参数解析: const string&amp; finen...

2019-03-02 20:20:01 59 0

原创 valgrind massif内存分析工具

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

2019-03-02 10:18:47 523 0

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

Redis没有使用C语言字符串的形式,通过’\0’作为结尾,而是使用了简单动态字符串(simple dynamic string)。 当Redis使用的字符串不需要修改字符串的内容的时候,可以使用C语言提供的字符串,当需要修改内容的时候就使用的是简单动态字符串。Redis键值对的操作中,都是使用的...

2018-10-09 21:36:29 121 0

原创 2. 两数相加

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

2018-09-10 10:16:01 94 0

原创 1. 两数之和

方法一 – 暴力求解 两层for循环 方法二 – 两遍哈希表 步骤: 遍历数组,将数据中的元素放入到哈希表中 遍历数组,从哈希表中寻找是否有相加和为target的数据 注意点: 第二次遍历数组的时候,第一次遇到相加和为target的数据的时候,就应该退出循环,如果不退出...

2018-09-09 14:22:58 143 0

原创 括号匹配算法

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

2018-09-09 09:30:40 142 0

原创 awk 6.0 — awk模式之二

awk的语法 awk [options] ‘Pattern {Actions}’ file1,file2… 之前介绍了三种模式:空模式,关系运算模式,BEGIN/END模式 正则模式 模式可以理解成条件,正则模式就是满足正则表达式条件的,就执行相应的动作,否则不执行。 ...

2018-08-22 08:51:08 95 0

原创 awk5.0 — awk模式之一

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

2018-08-21 08:43:07 139 0

原创 awk4.0 — awk格式化

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

2018-08-21 08:23:34 224 0

原创 awk3.0 — awk变量

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

2018-08-21 08:00:42 63 0

原创 awk3.0 — awk变量

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

2018-08-20 08:32:35 157 0

原创 awk2.0 — awk分隔符

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

2018-08-18 09:13:13 608 0

原创 awk1.0 — awk基础

简介 grep,sed,awk被称为Linux文本处理的三剑客,各有特点 grep:适合文本的匹配和查找 sed:编辑匹配到的文本 awk:对文本进行格式化输出 awk简介 awk的基本语法是 awk [options] 'Pattern {Actions}&...

2018-08-17 09:31:20 134 0

原创 vim配置

vim ~/.vimrc将下面的文件填写进去就好了 set nu set tabstop=4 set nobackup set expandtab set autoindent set bg=dark syntax on set mouse=a filetype plugin indent ...

2018-08-16 11:36:53 120 0

原创 epoll

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

2018-08-16 08:01:58 419 0

原创 搜索引擎Killed原因排查

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

2018-08-16 07:58:47 285 0

原创 GDB调试

理解coredump coredump中文意思是核心转储,是程序在崩溃的时候,操作系统保存的一个内存快照。实际是一个二进制文件,主要包括如下内容,进程此刻内存、寄存器状态、运行堆栈等信息。 该文件可以使用GDB打开调试。 有点时候,即使程序崩溃了也不会出coredump文件,原因是我们需要通...

2018-08-16 07:56:36 68 0

原创 高并发简单设计

系统内存不足,主要是每次来一个请求的时候,就要创建倒排的哈希,这个时候如果高并发的情况下,就会出现问题,每次一个倒排索引占据内存,内存只有2G肯定是不够使用的 可以根据日志分析的结果,看看用户搜索哪些内容的数据比较多,然后建立一个缓存 一般小型网站的设置 CDN CDN把一些访问的...

2018-08-16 07:54:50 104 0

原创 五种IO模型

五种IO模型 在进程使用磁盘的数据的时候,需要用到几个空间 磁盘 内核缓冲区kernel buffer 用户缓冲区app buffer 其中内核缓冲区和用户缓冲区都属于内存的范畴,首先内核需要将数据从磁盘拷贝到内核缓冲区,然后再从内核缓冲区拷贝到用户缓冲区,接下来才能够被用户进...

2018-08-16 07:51:24 138 0

原创 高并发系统搭建:web负载均衡

高并发系统搭建:web负载均衡 所谓的负载均衡就是让多个请求尽量均衡的分配到不同的机器上面去 1. HTTP负载均衡 当用户的请求发来之后,web服务器通过修改HTTP响应报头中的Location标记,返回一个新的url,然后浏览器继续请求这个新的url,实际上就是页面重定向。重定向有一个...

2018-08-15 08:01:37 806 0

原创 关于timewait状态

四次挥手 主动关闭连接的一方,调用close,协议层发送FIN包,在TCP报头的FIN字段设置为1,意思是我要和你断开链接,主动关闭连接的一方进入到了FIN_WATI_1状态 被动关闭的一方收到了FIN包之后,协议层回复ACK包,在他的TCP报头中将ACK设置为1,表示收到了对...

2018-08-08 22:53:57 217 0

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