自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (2)
  • 收藏
  • 关注

转载 makefile通配符

Makefile中的%标记和系统通配符*的区别 Makefile中的%标记和系统通配符*的区别在于,*是应用在系统中的,%是应用在这个Makefile文件中的。(本文的测试环境是Windows7下使用MinGW提供的make.exe)例如,如果你想编译一个文件夹下的所有.c文件,你可能会这样写:1 %.o:%.c2 gcc -o $@ $...

2019-07-06 09:57:14 1204

转载 makefile教程5

一、实验介绍--Makefile 规则进阶(1)本次实验介绍 make 目标认定的细节,包括终极目标如何认定,目标重建的条件,目标依赖的类型以及如何使用文件名通配符。1.1 实验内容验证 make 终极目标认定的优先级。验证 make 终极目标的重建条件。测试不同依赖类型的区别。验证文件名通配符的使用。1.2 实验知识点makefile 终极目标的定义:make不指定具体目标时的默认...

2019-07-05 14:03:12 347

转载 makefile教程10

一、实验介绍--Makefile 变量本次实验将介绍make的变量定义风格,变量的替换引用,环境变量、命令行变量、目标指定变量的使用及自动化变量的使用。1.1 实验内容不同的变量风格和赋值风格变量的替换引用,环境变量、命令行变量的使用目标指定变量的使用自动化变量的使用1.2 实验知识点变量的定义及展开时机。递归展开变量使用"="或define定义,在使用时展开。递归展开变量的定义与书...

2019-07-05 13:59:38 481 1

转载 makefile教程9

一、实验介绍--Make 递归执行本次实验将介绍 make 的递归执行及其过程中变量、命令行参数的传递规则。1.1 实验内容1.make的递归执行示例递归执行过程中变量的传递测试MAKELEVEL环境变量命令行参数和变量的传递1.2 实验知识点1.make的-w选项可以打印make进入和离开目录的信息。2.makefile中通常使用$(MAKE)递归执行下层makefile,以确...

2019-07-05 13:58:39 332

转载 makefile教程8

一、实验介绍--Makefile 规则命令本次实验将介绍make对规则命令的执行,命令执行过程中的错误处理以及命令包的使用。1.1 实验内容1.make对规则命令的执行2.make的多线程执行3.make的错误忽略选项4.make的异常结束命令包的使用1.2 实验知识点1.make使用$(SHELL)来执行规则命令,make会对$(SHELL)环境变量重新赋值,而非使用系统同...

2019-07-05 13:57:44 249

转载 makefile教程7

一、实验介绍--Makefile 规则进阶(3)本次实验将介绍强制目标、多规则目标、多目标规则、静态模式、双冒号规则的使用。1.1 实验内容强制目标的使用多规则目标的使用多目标规则的使用静态模式的使用双冒号规则的使用1.2 实验知识点强制目标没有命令或依赖,且其目标是一个不存在的文件名,可以起到强制更新依赖其的目标的作用。一个目标文件可以对应到多个规则目标,make 会合并其依赖项,...

2019-07-05 13:56:43 208

转载 makefile教程6

一、实验介绍--Makefile 规则进阶(2)本次实验将介绍 makefile 中 wildcard,VPATH,vpath,GPATH,-lNAME 的使用方法及文件路径保存方法。1.1 实验内容函数 wildcard 的使用VPATH 和 vpath 的使用文件路径的保存及 GPATH 的使用-lNAME 文件的使用1.2 实验知识点在变量定义或者函数引用时不能直接使用通配符,...

2019-07-05 13:55:39 251

转载 makefile教程4

一、实验介绍--Make 的处理阶段及条件执行本实验重点介绍make的两个处理阶段和条件执行语句。1.1 实验内容验证make的两个处理阶段。测试make目标指令的执行细节。测试make的条件执行语句。1.2 实验知识点1.make分为两个处理阶段:1)读取所有makefile文件,内建变量、规则和依赖关系结构链表。2)执行更新和重建。2.makefile中可以使用反斜线将语句和命令分...

2019-07-05 13:53:19 242

转载 makefle教程3

一、实验介绍--Makefile 基础规则(2)本实验在上一个实验的基础上,继续深入介绍makefile的基础规则。1.1 实验内容验证makefile的自动推导规则。验证makefile include文件规则。验证makefile环境变量MAKEFILES,MAKEFILE_LIST和.VARIABLES的作用。测试makefile的重载。1.2 实验知识点1.makefile文件不...

2019-07-05 13:52:14 294

转载 makfile教程2

一、实验介绍--Makefile 基础规则(1)上次实验介绍了对不同源代码文件进行编译、链接生成可执行文件的基本过程,有了这些前导知识作为基础之后,就可以开始学习makefile的基础规则了。首先,我们已经知道makefile作为工程管理文件可以提供工程下各个源代码的编译、链接规则。GNU make 工具可以读入makefile并解析其中的规则,并自动对工程进行编译链接,提高项目开发的效...

2019-07-05 13:50:50 297

转载 makefile教程1

编译,链接基础实验--简易计算器的编译一、实验介绍Makefile 是一种描述工程编译、链接的文件。在一个庞大的项目或工程中,往往存在非常复杂的编译和链接流程,而 Makefile 文件可以描述哪些源文件在何时需要编译,如何编译这些源文件,甚至可以调用 shell 和其它的工具来执行更加复杂的项目构建流程。一旦 Makefile 文件构建完毕,用户只需要使用 GNU make 工具读入 Ma...

2019-07-05 12:44:08 230

原创 vscode搭建python和c++开发环境

需要安装的软件注意:安装过程中需要将安装目录添加到环境变量git:用于将代码或配置托管到github,更改vscode终端。cmake+vs2017:用于编译c++程序,或使用其他编译方式,例如MinGW-W64,gcc等。anaconda:用于创建python环境vscode:编写程序,可以选择安装汉化插件 Chinese (Simplified) Language Pack...

2019-04-12 09:01:12 5813

原创 使用python+opencv更改图像像素颜色

# -*- coding: UTF-8 -*-import cv2import numpy as npimg=cv2.imread("pic.bmp")# 将图像转换为HSV像素空间,因为HSV空间对颜色比较敏感hsv=cv2.cvtColor(img,cv2.COLOR_BGR2HSV)# 分别设置HSV颜色空间中,红色、黄色、蓝色、绿色的阈值lower_red=np.ar...

2019-04-04 16:46:36 17502

原创 numpy 创建带默认值的矩阵

import numpy as npnp.full((col,row),127,dtype=np.uint8)

2019-03-13 19:26:45 5407

原创 opencv图像数据类型

types_c.h#define CV_CN_MAX 512#define CV_CN_SHIFT 3#define CV_DEPTH_MAX (1 << CV_CN_SHIFT) #define CV_8U 0#define CV_8S 1#define CV_16U 2#define CV_16S 3#define CV_32...

2019-03-04 16:14:43 1476

原创 opencv 创建图像与像素赋值

1.创建空MatMat img(height, width, CV_8UC1, 127); //高,宽,类型,默认像素值Mat img(height, width, CV_8UC3, Scale(127, 127, 127));Mat img;img.create(5, 5, CV_8UC1); //默认值205Mat img = Mat::eye(5, 5, CV_8UC1...

2019-03-04 15:52:21 5576 2

原创 cmake使用指定版本opencv

方法1:让cmake找到opencv的OpenCVConfig.cmake文件,比如set(OpenCV_DIR "/usr/local/opencv3.4.2/share/OpenCV") #OpenCVConfig.cmake所在的文件目录find_package(OpenCV REQUIRED)include_directories(${OpenCV_INCLUDE_DIRS})...

2019-03-04 15:25:37 5991

原创 apollo3.5安装

一、安装Git LFS方法一:使用apt安装# Required for Ubuntu 14.04 / 16.04.$ curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash# Ubuntu 14.04 / 16.04 / 18.04.$ sudo ...

2019-01-22 19:48:24 3822

原创 ubuntu源码安装opencv+opencv_contrib

OpenCV源码下载OpenCV及对应版本的opencv_contribhttps://github.com/opencv 安装cmake-gui$ sudo apt-get install cmake-qt-gui 安装依赖# Build tools:sudo apt-get install -y build-essential cmake# GUI (if ...

2018-12-26 10:53:05 370

原创 ubuntu 配置opencv3.4.2+QT

第一步:打开QtCreator,点击File,选择New File or Project,选择None-Qt Project,选择Plain C++ Project,点击choose ,然后基本都选默认的就行。项目建立完成后就会看到一个*.pro文件,修改.pro文件中的内容,如下:TEMPLATE = appCONFIG += console c++11CONFIG -= app_...

2018-12-22 10:10:54 407

原创 Eigen中四元数、欧拉角、旋转矩阵、旋转向量之间的转换

一、旋转向量1.0 初始化旋转向量:旋转角为alpha,旋转轴为(x,y,z)Eigen::AngleAxisd rotation_vector(alpha,Vector3d(x,y,z))1.1 旋转向量转旋转矩阵Eigen::Matrix3d rotation_matrix;rotation_matrix=rotation_vector.matrix();Eigen...

2018-09-02 16:10:38 41322 12

原创 QT静态编译

ubuntu14.04+Qt4.8.6:一.下载源码,地址在这http://download.qt.io/archive/,找到对应自己QT版本源码二.编译2.1安装依赖:$ sudo apt-get install libxcb1 libxcb1-dev libx11-xcb1 libx11-xcb-dev libxcb-keysyms1 libxcb-keysyms1-dev...

2018-09-02 15:01:50 812

原创 cmake使用boost库

cmake_minimum_required(VERSION 2.8.3)project(boost_test)find_package(Boost REQUIRED COMPONENTS system thread)include_directories(${Boost_INCLUDE_DIRS})add_executable(boost_test boost_test.cpp)tar...

2018-07-10 23:14:53 14314

原创 g++编译boost库

如果报这个错误:/tmp/ccMCUxu3.o: In function `__static_initialization_and_destruction_0(int, int)':boost_test.cpp:(.text+0x4e): undefined reference to `boost::system::generic_category()'boost_test.cpp:(.tex...

2018-07-10 23:11:20 1617

转载 在python中设置静态变量

Python函数的静态变量C语言中,在函数内部可以定义static类型的变量,这个变量是属于这个函数的全局对象。在Python中也可以实现这样的机制。def f(): if not hasattr(f, 'x'): f.x = 0 print(f.x) f.x+=1f()#输出1f()#输出2def f(): cl

2018-01-23 11:24:55 13250

转载 Python--re模块

Python--re模块

2017-11-29 20:37:15 144

转载 vim

简介Vim(Vi[Improved])编辑器是功能强大的跨平台文本文件编辑工具,继承自Unix系统的Vi编辑器,支持Linux/Mac OS X/Windows系统,利用它可以建立、修改文本文件。进入Vim编辑程序,可以在终端输入下面的命令:$vim [filename]其中filename是要编辑器的文件的路径名。如果文件不存在,它将为你建立一个新文件。Vim编辑程序有三种操作模式,分别称为 编

2017-11-26 20:33:01 198

转载 Python--json

Python--json

2017-11-26 19:50:53 317

转载 Python--os模块

Python--os模块

2017-11-26 19:38:32 281

原创 使用ros_bridge获取深度数据

使用ros_bridge获取深度数据

2017-11-09 16:55:33 3065

原创 python使用opencv2人脸识别

import cv2from PIL import Image, ImageDrawdef detectFaces(image_name):img = cv2.imread(image_name)gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)face_cascade = cv2.CascadeClassifier("D:\Pro

2017-05-03 12:42:14 683

转载 C++

#include #include #include using namespace std;int main(void){char multichar[]={"窄字符"};wchar_t widechar[]={L"宽字符"};DWORD sizeMByte = WideCharToMultiByte(CP_OEMCP, 0, widechar, -1,

2017-04-04 11:47:54 209

转载 swprintf和sprintf的使用

C/C++ codechar szA[100];             //An ANSI string bufferWCHAR szW[100];            //A Unicode string buffer//Normal sprintf:all strings are ANSIsprintf(szA, "%s","ANSI Str");//Con

2017-04-04 10:55:52 1523

深入分析Linux内核源代码.pdf

深入分析Linux内核源码 前言 第一章 走进linux 1.1 GNU与Linux的成长 1.2 Linux的开发模式和运作机制 1.3走进Linux内核 1.3.1 Linux内核的特征 1.3.2 Linux内核版本的变化 1.4 分析Linux内核的意义 1.4.1 开发适合自己的操作系统 1.4.2 开发高水平软件 1.4.3 有助于计算机科学的教学和科研 1.5 Linux内核结构 1.5.1 Linux内核在整个操系统中的位置 1.5.2 Linux内核的作用 1.5.3 Linux内核的抽象结 构 1.6 Linux内核源代码 1.6.1 多版本的内核源代码 1.6.2 Linux内核源代码的结构 1.6.3 从何处开始阅读源代码 1.7 Linux内核源代码分析工具 1.7.1 Linux超文本交叉代码检索工具 1.7.2 Windows平台下的源代码阅读工具Source Insight 第二章 Linux运行的硬件基础 2.1 i386的寄存器 2.1.1通用寄存器 2.1.2段寄存器 2.1.3状态和控制寄存器 2.1.4 系统地址寄存器 2.1.5 调试寄存器和测试寄存器 2.2 内存地址 2.3 段机制和描述符 2.3.1 段机制 2.3.2 描述符的概念 2.3.3系统段描述符 2.3.4 描述符表 2.3.5 选择符与描述符表寄存器 2.3.6 描述符投影寄存器 2.3.7 Linux中的段 2.4 分页机制 2.4.1 分页机构 2.4.2页面高速缓存 2.5 Linux中的分页机制 2.5.1 与页相关的数据结构及宏的定义 2.5.2 对页目录及页表的处理 2.6 Linux中的汇编语言 2.6.1 AT&T与Intel汇编语言的比较 2.6.2 AT&T汇编语言的相关知识 2.6.3 Gcc嵌入式汇编 2.6.4 Intel386汇编指令摘要 第三章中断机制 3.1 中断基本知识 3.1.1 中断向量 3.1.2 外设可屏蔽中断 3.1.3异常及非屏蔽中断 3.1.4中断描述符表 3.1.5 相关汇编指令 3.2中断描述符表的初始化 3.2. 1 外部中断向量的设置 3.2.2中断描述符表IDT的预初始化 3.2.3 中断向量表的最终初始化 3.3异常处理 3.3.1 在内核栈中保存寄存器的值 3.3.2 中断请求队列的初始化 3.3.3中断请求队列的数据结构 3.4 中断处理 3.4.1中断和异常处理的硬件处理 3.4.2 Linux对异常和中断的处理 3.4.3 与堆栈有关的常量、数据结构及宏 3.4.4 中断处理程序的执行 3.4.5 从中断返回 3.5中断的后半部分处理机制 3.5.1 为什么把中断分为两部分来处理 3.5.2 实现机制 3.5.3数据结构的定义 3.5.4 软中断、bh及tasklet的初始化 3.5.5后半部分的执行 3.5.6 把bh移植到tasklet 第四章 进程描述 4.1 进程和程序(Process and Program) 4.2 Linux中的进程概述 4.3 task_struct结构描述 4.4 task_struct结构在内存中的存放 4.4.1 进程内核栈 4.4.2 当前进程(current宏) 4.5 进程组织的方式 4.5.1哈希表 4.5.2双向循环链表 4.5.3 运行队列 4.5.4 等待队列 4.6 内核线程 4.7 进程的权能 4.8 内核同步 4.8.1信号量 4.8.2原子操作 4.8.3 自旋锁、读写自旋锁和大读者自旋锁 4.9 本章小节 第五章进程调度 5.1 Linux时间系统 5.1.1 时钟硬件 5.1.2 时钟运作机制 5.1.3 Linux时间基准 5.1.4 Linux的时间系统 5.2 时钟中断 5.2.1 时钟中断的产生 5.2.2.Linux实现时钟中断的全过程 5.3 Linux的调度程序-Schedule( ) 5.3.1 基本原理 5.3.2 Linux进程调度时机 5.3.3 进程调度的依据 5.3.4 进程可运行程度的衡量 5.3.5 进程调度的实现 5.4 进程切换 5.4.1 硬件支持 5.4.2 进程切换 第六章 Linux内存管理 6.1 Linux的内存管理概述 6.1.1 Linux虚拟内存的实现结构 6.1.2 内核空间和用户空间 6.1.3 虚拟内存实现机制间的关系 6.2 Linux内存管理的初始化 6.2.1 启用分页机制 6.2.2 物理内存的探测 6.2.3 物理内存的描述 6.2.4 页面管理机制的初步建立 6.2.5页表的建立 6.2.6内存管理区 6.3 内存的分配和回收 6.3.1 伙伴算法 6.3.2 物理页面的分配和释放 6.3.3 Slab分配机制 6.4 地址映射机制 6.4.1 描述虚拟空间的数据结构 6.4.2 进程的虚拟空间 6.4.3 内存映射 6.5 请页机制 6.5.1 页故障的产生 6.5.2 页错误的定位 6.5.3 进程地址空间中的缺页异常处理 6.5.4 请求调页 6.5.5 写时复制 6.6 交换机制 6.6.1 交换的基本原理 6.6.2 页面交换守护进程kswapd 6.6.3 交换空间的数据结构 6.6.4 交换空间的应用 6.7 缓存和刷新机制 6.7.1 Linux使用的缓存 6.7.2 缓冲区高速缓存 6.7.3 翻译后援存储器(TLB) 6.7.4 刷新机制 6.8 进程的创建和执行 6.8.1 进程的创建 6.8.2 程序执行 6.8.3 执行函数 第七章 进程间通信 7.1 管道 7.1.1 Linux管道的实现机制 7.1.2 管道的应用 7.1.3 命名管道(FIFO) 7.2 信号(signal) 7.2.1 信号种类 7.2.2 信号掩码 7.2.3 系统调用 7.2.4 典型系统调用的实现 7.2.5 进程与信号的关系 7.2.6 信号举例 7.3 System V 的IPC机制 7.3.1 信号量 7.3.2 消息队列 7.3.3 共享内存 第八章 虚拟文件系统 8.1 概述 8.2 VFS中的数据结构 8.2.1 超级块 8.2.2 VFS的索引节点 8.2.3 目录项对象 8.2.4 与进程相关的文件结构 8.2.5 主要数据结构间的关系 8.2.6 有关操作的数据结构 8.3 高速缓存 8.3.1 块高速缓存 8.3.2 索引节点高速缓存 8.3.3 目录高速缓存 8.4 文件系统的注册、安装与拆卸 8.4.1 文件系统的注册 8.4.2 文件系统的安装 8.4.3 文件系统的卸载 8.5 限额机制 8.6 具体文件系统举例 8.6.1 管道文件系统pipefs 8.6.2 磁盘文件系统BFS 8.7 文件系统的系统调用 8.7.1 open 系统调用 8.7.2 read 系统调用 8.7.3 fcntl 系统调用 8 .8 Linux2.4文件系统的移植问题 第九章 Ext2文件系统 9.1 基本概念 9.2 Ext2的磁盘布局和数据结构 9.2.1 Ext2的磁盘布局 9.2.2 Ext2的超级块 9.2.3 Ext2的索引节点 9.2.4 组描述符 9.2.5 位图 9.2.6 索引节点表及实例分析 9.2.7 Ext2的目录项及文件的定位 9.3 文件的访问权限和安全 9.4 链接文件 9.5 分配策略 9.5.1 数据块寻址 9.5.2 文件的洞 9.5.3 分配一个数据块 第十章 模块机制 10.1 概述 10.1.1 什么是模块 10.1.2 为什么要使用模块? 10.2 实现机制 10.2.1 数据结构 10.2.2 实现机制的分析 10.3 模块的装入和卸载 10.3.1 实现机制 10.3.2 如何插入和卸载模块 10.4 内核版本 10.4.1 内核版本与模块版本的兼容性 10.4.2 从版本2.0到2.2内核API的变化 10.4.3 把内核2.2移植到内核2.4 10.5 编写内核模块 10.5.1 简单内核模块的编写 10.5.2 内核模块的Makefiles文件 10.5.3 内核模块的多个文件 第十一章 设备驱动程序 11.1 概述 11.1.1 I/O软件 11.1.2 设备驱动程序 11.2 设备驱动基础 11.2.1 I/O端口 11.2.2 I/O接口及设备控制器 11.2.3 设备文件 11.2.4 VFS对设备文件的处理 11.2.5 中断处理 11.2.6 驱动DMA工作 11.2.7 I/O 空间的映射 11.2.8 设备驱动程序框架 11.3 块设备驱动程序 11.3.1 块设备驱动程序的注册 11.3.2 块设备基于缓冲区的数据交换 11.3.3 块设备驱动程序的几个函数 11.3.4 RAM 盘驱动程序的实现 11.3.5 硬盘驱动程序的实现 11.4 字符设备驱动程序 11.4.1 简单字符设备驱动程序 11.4.2 字符设备驱动程序的注册 11.4.3 一个字符设备驱动程序的实例 11.4.4 驱动程序的编译与装载 第十二章 网络 12.1 概述 12.2 网络协议 12.2.1 网络参考模型 12.2.2 TCP/IP 协议工作原理及数据流 12.2.3 Internet 协议 12.2.4 TCP协议 12.3 套接字(socket) 12.3.1 套接字在网络中的地位和作用 12.3.2 套接字接口的种类 12.3.3 套接字的工作原理 12.3.4 socket 的通信过程 12.3.5 socket为用户提供的系统调用 12.4 套接字缓冲区(sk_buff) 12.4.1 套接字缓冲区的特点 12.4.2 套接字缓冲区操作基本原理 12.4.3 sk_buff数据结构的核心内容 12.4.4 套接字缓冲区提供的函数 12.4.5 套接字缓冲区的上层支持例程 12.5 网络设备接口 12.5.1 基本结构 12.5.2 命名规则 12.5.3 设备注册 12.5.4 网络设备数据结构 12.5.5 支持函数 第十三章 启动系统 13.1 初始化流程 13.1.1 系统加电或复位 13.1.2 BIOS启动 13.1.3 Boot Loader 13.1.4 操作系统的初始化 13.2 初始化的任务 13.2.1 处理器对初始化的影响 13.2.2 其他硬件设备对处理器的影响 13.3 Linux 的Boot Loarder 13.3.1 软盘的结构 13.3.2 硬盘的结构 13.3.3 Boot Loader 13.3.4 LILO 13.3.5 LILO的运行分析 13.4 进入操作系统 13.4.1 Setup.S 13.4.2 Head.S 13.5 main.c中的初始化 13.6 建立init进程 13.6.1 init进程的建立 13.6.2 启动所需的Shell脚本文件 附录: 1 Linux 2.4内核API 2.1 驱动程序的基本函数 2.2 双向循环链表的操作 2.3 基本C库函数 2.4 Linux内存管理中Slab缓冲区 2.5 Linux中的VFS 2.6 Linux的连网 2.7 网络设备支持 2.8 模块支持 2.9 硬件接口 2.10 块设备 2.11 USB 设备 2 参考文献

2019-07-11

使用ros_bridge获取深度数据

监听ROS图像信息话题,将图像转换为cv::Mat并在其上画圆,用opencv显示图像。并输出深度值。

2017-11-09

空空如也

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

TA关注的人

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