自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Makefile目标文件搜索

我们都知道一个工程文件中的源文件有很多,并且存放的位置可能不相同(工程中的文件会被放到不同的目录下),所以按照之前的方式去编写 Makefile 会有问题。如果需要的文件是存在于不同的路径下,这就用到了 Makefile 中为我们提供的目录搜索文件的功能。常见的搜索的方法的主要有两种:一般搜索VPATH和选择搜索vpath。VPATH 和 vpath 的区别:VPATH 是变量,更具体的说是环境变量,Makefile 中的一种特殊变量,使用时需要指定文件的路径;vpath 是关键字,按照模式..

2022-03-18 20:27:00 598

原创 Makefile自动化变量

自动化变量可以理解为由 Makefile 自动产生的变量。在模式规则中,规则的目标和依赖的文件名代表了一类的文件。规则的命令是对所有这一类文件的描述。我们在 Makefile 中描述规则时,依赖文件和目标文件是变动的,显然在命令中不能出现具体的文件名称,否则模式规则将失去意义。模式规则命令中该如何表示文件呢?就需要使用“自动化变量”,自动化变量的取值根据执行的规则来决定,取决于执行规则的目标文件和依赖文件。下面是对所有的自动化变量进行的说明:自动化变量 说明 $@ 表示规则的目标文件名。

2022-03-18 20:07:56 905

原创 Makefile变量的定义和使用

Makefile 文件中定义变量的基本语法如下:变量的名称=值列表Makefile 中的变量的使用其实非常的简单,因为它并没有像其它语言那样定义变量的时候需要使用数据类型。变量的名称可以由大小写字母、阿拉伯数字和下划线构成。等号左右的空白符没有明确的要求,因为在执行 make 的时候多余的空白符会被自动的删除。至于值列表,既可以是零项,又可以是一项或者是多项。如:VALUE_LIST = one two three调用变量的时候可以用 "$(VALUE_LIST)" 或者是 "${VALU

2022-03-18 17:31:41 2412

原创 Makefile通配符

Makefile 是可以使用 shell 命令的,所以 shell 支持的通配符在 Makefile 中也是同样适用的。 shell 中使用的通配符有:"*","?","[...]"。具体看一下这些通配符的表示含义和具体的使用方法。通配符 使用说明 * 匹配0个或者是任意个字符 ? 匹配任意一个字符 [] 我们可以指定匹配的字符放在 "[]" 中 实例test:*.cgcc -o $@ $^但是如果我们的通配符使用在依赖的规则中的话一定...

2022-03-18 17:16:00 364

原创 Makefile工作流程

当我们在执行 make 条命令的时候,make 就会去当前文件下找要执行的编译规则,也就是 Makefile 文件。我们编写 Makefile 的时可以使用的文件的名称 "GNUmakefile" 、"makefile" 、"Makefile" ,make 执行时回去寻找 Makefile 文件,推荐使用Makefile。Makefile 的具体工作流程可以通过例子来看一下:创建一个包含有多个源文件和 Makefile 的目录文件,源文件之间相互关联。在 Makefile 中添加下面的代码:mai

2022-03-18 17:00:02 741

原创 Makefile文件规则

Makefile 描述的是文件编译的相关规则,它的规则主要是两个部分组成,分别是依赖的关系和执行的命令,其结构如下所示:targets : prerequisites command或者是targets : prerequisites; command command相关说明如下:targets:规则的目标,可以是 Object File(一般称它为中间文件),也可以是可执行文件,还可以是一个标签; prerequisites:是我们的依赖文件,要生成 targe

2022-03-18 15:34:41 454

原创 Makefile简介

如果你是在 Windows 下作开发的话不需要去考虑这个问题,因为 Windows 下的集成开发环境(IDE)已经内置了 Makefile,或者说会自动生成 Makefile,我们不用去手动编写。Linux 中却不能这样,需要我们去手动的完成这项工作。Linux 下可以学习的开发语言有很多,常见的有 C/C++语言、python、java 等等。Makefile 可以简单的认为是一个工程文件的编译规则,描述了整个工程的编译和链接等规则。其中包含了那些文件需要编译,那些文件不需要编译,那些...

2022-03-18 15:14:37 237

原创 opencv源码下载编译

1.源码下载GitHub - opencv/opencv: Open Source Computer Vision Library 选择需要下载的opencv版本。安装git,通过git clone +地址链接下载,或下载zip压缩包。 带有opencvino的可以部署在线模型。 或下载opencv_contrib,下载方法同opencv一样。GitHub - openc...

2022-03-18 11:47:37 7407

原创 Python将pdf转为png

import fitz"""将PDF转化为图片pdfPath pdf 文件的路径imgPath 图像要保存的文件夹zoom_x x方向的缩放系数zoom_y y方向的缩放系数rotation_angle 旋转角度"""def pdf_image(pdfPath, imgPath, zoom_x, zoom_y, rotation_angle): #打开pdf文件 pdf = fitz.open(pdfPath) #逐页读取pdf for pg in r.

2022-03-17 09:48:27 985 2

原创 C++函数重载

在实际开发中,有时候我们需要实现几个功能类似的函数,只是有些细节不同。例如希望交换两个变量的值,这两个变量有多种类型,可以是 int、float、char、bool 等,我们需要通过参数把变量的地址传入函数内部。在C语言中,程序员往往需要分别设计出三个不同名的函数,但在C++中,这完全没有必要。C++ 允许多个函数拥有相同的名字,只要它们的参数列表不同就可以,这就是函数的重载(Function Overloading)。借助重载,一个函数名可以有多种用途。 参数列表又叫参数...

2022-03-17 00:53:10 384

原创 概率密度函数

1.概率密度函数2.概率密度函数的推导假设误差服从正太分布,符合中心极限定理,那么样本误差服从互相独立的假设。 所以3.对数似然函数推导出MSE损失函数 当J(θ)取最小时,可使总似然得到最大。即得到新的目标函数J(θ)。 最小二乘法形式...

2022-03-17 00:48:32 972

原创 机器学习——线性回归

1.线性回归是机器学习中有监督机器学习下的一种算法。 回归问题主要关注确定一个唯一的因变量(需要预测的值)和一个或多个数值型的自变量(预测bi)

2022-03-16 22:32:57 1556

原创 雅可比矩阵,Hessian矩阵

1.雅可比矩阵由一阶偏导数构成的矩阵,发明它的目的主要是为了简化求导公式。 假设有这样一个函数可以把n维的向量x映射为k维的向量y。,其中每个和每个都是相关的,也就是每个是单独从映射过来的函数,它的雅可比矩阵就是每个分别对每个求偏导,然后构成的矩阵是雅可比矩阵,第一行就是对到求偏导,第二行到第k行依次类推。 2.Hessian矩阵 它是对于一个多元函数来说的,相当于一元函数的二阶导数,Hessian矩阵是一个对称矩阵。Hessian矩...

2022-03-16 22:30:39 2402

原创 MFC框架结构的分析

1.框架代码文件的结构主要有4个部分组成:1) 资源文件Resource.h:主要是定义资源的ID。2) 预编译文件:可以用来解决头文件包含冲突的问题,定义一些需要全局性包含的文件。3) 应用程序类对应文件:项目名称是TestOne,对应类名为CTestOneApp。4) 对话框类:项目名称是TestOne,对应类名为CTestOneDlg。2.应用程序类MFC定义了一个应用程序基类CWinA...

2022-03-16 21:19:49 601

原创 MFC简介

1.APIWndows操作系统为我们编写Windows应用程序提供的接口函数----API,//Windows中播放声音的API函数//PlaySound需要的头文件和库文件#include <mmsystem.h>#pragma comment(lib, "WINMM.LIB")BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound);//pszSound:文件路径;fdwSound:播放模式2.SDK

2022-03-16 16:57:11 5183

转载 C++函数的默认参数

在C++中,定义函数时可以给形参指定一个默认的值,这样调用函数时如果没有给这个形参赋值(没有对应的实参),那么就使用这个默认的值。也就是说,调用函数时可以省略有默认值的参数。如果用户指定了参数的值,那么就使用用户指定的值,否则使用参数的默认值。 所谓默认参数,指的是当函数调用中省略了实参时自动使用的一个值,这个值就是给形参指定的默认值。下面是一个简单的示例:#include<iostream>using namespace std;//带默认参数的函数...

2021-06-23 22:15:02 1713 2

原创 如何规范的使用C++内联函数

inline关键字可以只在函数定义处添加,也可以只在函数声明处添加,也可以同时添加。但是在函数声明处添加inline关键字是无效的,编译器会忽略函数声明处的关键字。也就是说,inline是一种“用于实现的关键字”,而不是一种用于声明的关键字。 更为严格地说,内联函数不应该有声明,应该将函数定义放在本应该出现函数声明的地方,这是一种良好的编程风格。...

2021-06-23 22:01:47 427

原创 C++ 内联函数也可以用来代替宏

在c语言中,宏是可以带参数的,它在形式上和函数非常相似。不过不像函数,宏仅仅是字符串替换,不是按值传递。 使用宏的一个经典例子是求一个数的平方,如下所示:#include <iostream>using namespace std;#define SQ(y) y*yint main(){ int n, sq; cin>>n; sq = SQ(n); cout<<sq<<endl; ...

2021-06-23 21:49:53 752

转载 C++ inline内联函数

函数是一个可以重复使用的代码块,CPU 会一条一条地挨着执行其中的代码。CPU 在执行主调函数代码时如果遇到了被调函数,主调函数就会暂停,CPU 转而执行被调函数的代码;被调函数执行完毕后再返回到主调函数,主调函数根据刚才的状态继续往下执行。 一个 C/C++程序的执行过程可以认为是多个函数之间的相互调用过程,它们形成了一个或简单或复杂的调用链条,这个链条的起点是 main(),终点也是 main()。当 main() 调用完了所有的函数,它会返回一个值(例如return...

2021-06-23 16:58:09 92

原创 new和delete运算符

在C语言中,动态分配内存用 malloc() 函数,释放内存用 free() 函数。如下所示:int *p = (int*) malloc( sizeof(int) * 10 ); //分配10个int型的内存空间free(p); //释放内存 在C++中,这两个函数仍然可以使用,但是C++又新增了两个关键字,new 和 delete:new 用来动态分配内存,delete 用来释放内存。int *p = new int; //分配1个int型的内...

2021-06-23 09:16:08 149

原创 C++中的const

在C语言中,const 用来限制一个变量,表示这个变量不能被修改,我们通常称这样的变量为常量(Constant) 在C++中,const 的含义并没有改变,只是对细节进行了一些调整,以下是最主要的两点。 1.C++中的 const 更像编译阶段的 #defineconst int m=10;int n=m; 变量是要占用内存的,即使被 const 修饰也不例外。m、n 两个变量占用不同的内存,int n = m;表示将 m 的值...

2021-06-22 11:45:23 653

原创 bool(布尔类型)

C语言并没有彻底从语法上支持“真”和“假”,只是用 0 和非 0 来代表。这点在C++中得到了改善,C++ 新增了bool 类型(布尔类型),它一般占用 1 个字节长度。bool 类型只有两个取值,true 和 false:true 表示“真”,false 表示“假”。 bool 是类型名字,也是 C++ 中的关键字,它的用法和 int、char、long 是一样的,请看下面的例子:#include <iostream>using namespace...

2021-06-22 09:39:24 16905 3

原创 C++输入输出

在C语言中,我们通常会使用 scanf 和 printf 来对数据进行输入输出操作。在C++语言中,C语言的这一套输入输出库我们仍然能使用,但是 C++ 又增加了一套新的、更容易使用的输入输出库。 简单的输入输出代码示例:#include<iostream>using namespace std;int main(){ int x; float y; cout<<"Please input an int number...

2021-06-21 23:08:30 1023 2

原创 C++头文件和std命名空间

头文件:iostream.h:用于控制台输入输出的文件 fstream.h:用于文件操作的头文件 complex.h:用于复数计算的头文件 使用命名空间std:#include <cstdio>int main(){ std::printf("http://c.biancheng.net\n"); return 0;} 不使用命...

2021-06-21 21:54:06 562

原创 C++命名空间(名字空间)

为了解决合作开发时的命名冲突问题,C++引入了命名空间的概念。namespace Li{ //小李的变量定义 FILE fp = NULL;}namespace Han{ //小韩的变量定义 FILE fp = NULL;} 小李与小韩各自定义了以自己姓氏为名的命名空间,此时再将他们的fp变量放在一起编译就不会有任何问题。命名空间有时也被称为名字空间,名称空间。 namespace是c++中的关键字...

2021-06-21 21:25:12 396

原创 Linux GCC的使用

编译单个源文件gcc mian.c 编译多个源文件gcc main.c module.c 编译C++程序时,gcc命令也可以使用,不过要增加 -lstdc++ 选项,否则会发生链接错误。例如编译单个源文件。gcc main.cpp -lstdc++ 编译多个源文件gcc main.cpp module.cpp -lstdc++ gcc命令在链接时默认使用C的库,只有添加了 -lstdc++ 选...

2021-06-21 19:13:57 146

原创 C++中的类和对象

1.C++已经能够很完善的支持面向过程编程,面向对象编程,和泛型编程。 C++是一门面向对象的编程语言,理解C++,首先要理解类(Class)和对象(Object)这两个概念。 C++中的类(Class)可以看作是C语言中结构体(Struct)的升级版,结构体是一种构造类型,可以包含若干成员变量,每个成员变量的类型可以不同;可以通过结构体来定义结构体变量,每个变量拥有相同的性质。例如:#include<stdio.h>//定义结构体 Studentstruct Stu...

2021-06-21 18:54:53 455

空空如也

空空如也

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

TA关注的人

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