![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LIB&DLL
文章平均质量分 71
bendangth
这个作者很懒,什么都没留下…
展开
-
C++静态库和动态库
这次分享的宗旨是——让大家学会创建与使用静态库、动态库,知道静态库与动态库的区别,知道使用的时候如何选择。这里不深入介绍静态库、动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书《程序员的自我修养——链接、装载与库》。什么是库库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库是一种可转载 2015-08-08 11:23:59 · 222 阅读 · 0 评论 -
堆释放错误
1.结构体使用之前一定得分配内存;尤其是结构体嵌套的那种,一定要记得给内部的结构体分配内存;(当然得记得释放)例如: MS_GMM* gmm; gmm=(MS_GMM*)malloc(sizeof(MS_GMM));//需è要癮传?递蘗参?数簓的?结á构1体?,?最?好?定¨义?为a指?针?,?在ú使?用?大洙?的?结á构1体?之?前°,?最?好?先è分?配?内ú存?原创 2015-08-15 11:50:43 · 459 阅读 · 0 评论 -
lnk2001 无法解析的外部符号 的几种情况及解决办法
Error LNK2001 无法解析的外部符号 的几种情况及解决办法 . 今天写了一个小程序,然后碰到了“Error LNK2001 无法解析的外部符号”这个问题,一直解决不了,后来上网搜了下,发现这里面的关于这类错误的内容归纳比较齐全,就摘下来作为参考了。 原文: http://wenku.baidu.com/view/8f0e877931b765ce0508141a.html转载 2015-08-14 22:14:50 · 21874 阅读 · 0 评论 -
程序封装_随记(1)
一、学会使用结构体对于你的代码,别人只需要可以简单的调用,不需要知道太多关于函数的问题,因此只需要提供简单的一两个接口。那么多变量,一两个接口怎么可能够,因此就出现了结构体。在函数初始化的时候,人们只关心怎么初始化结构体;功能实现,人们只关心需要传入什么参数,可以传出什么参数;最后在来一个结构体,就相应的内存进行维护,以免内存泄露!(还记得么,GMM_GRAY;GMM_RGB)二、学会原创 2015-08-15 11:48:12 · 426 阅读 · 0 评论 -
编译器都干了些什么
目前项目在不停的增长,我想还是在它规模仍旧很小的时候把它的模块分清楚,不同模块分到不同的 projects 里面,这里面出现了很多问题,也反映了我知识上的很多不足。1 , project 最后的输出要设置清楚,有的是 static lib ,有的是 dll ,有的是 exe ,不一样的输出要设置好,它们都是 linker 的成果,但是以不同的方式应用。2 , project depende转载 2015-08-15 12:06:52 · 658 阅读 · 0 评论 -
编译和链接
编译和链接在多道程序环境中,要想将一个用户源代码变成一个可以在内存中执行的程序,通常分为三个步骤:编译、链接、载入。 (1)编译:由编译程序将用户的源代码编译成若干个目标模块。 (2)链接:由链接程序将编译后形成的一组目标模块以及它们所需要的库函数链接在一起,形成一个完整的载入模块。 (3)载入:由载入程序将载入模块载入内存。转载 2015-08-11 21:49:00 · 300 阅读 · 0 评论 -
编译
C程序编译执行过程 认识C编译执行过程,是C学习的开端。简单说C语言从编码编译到执行要经历一下过程: C源代码编译---->形成目标代码,目标代码是在目标机器上运行的代码。连接---->将目标代码与C函数库相连接,并将源程序所用的库代码与目标代码合并,并形成最终可执行的二进制机器代码(程序)。执行----->在特定的机器环境下运行C程序。 如果用一个图 来表转载 2015-08-11 21:49:45 · 370 阅读 · 0 评论 -
opencv配置
Opencv的配置要用VC++做图像处理那么首先就要安装相应的开发环境首先是VS2010,其次是Opencv2.3.1还有是CMake2.8.8准备下载开发软件 首先下载到网上搜索下载破解版VS2010 旗舰版,然后安装,我的安装目录是默认路径;然后网上搜索Opencv2.3.1,最好到英文官网下载最新版本(官网上有好多平台的版本,我这里下载的是for wind转载 2015-08-11 21:47:42 · 348 阅读 · 0 评论 -
静态链接库和动态链接库
VS2008 lib静态链接一、 静态链接库与动态链接库区别静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。静态链接库和动态链接库的另外一个区别在转载 2015-08-08 11:25:46 · 318 阅读 · 0 评论 -
warning C4273dll链接不一致
warning C4273dll链接不一致 方法1: 选择项目->属性->预处理器->预处理定义, 增加:HYCOMMONWINAPI_EXPORTS方法2:就是在#ifdef HYCOMMONWINAPI_EXPORTS#define HYCOMMONWINAPI_API __declspec(dllexport)#else#define HYCOMMONWINA转载 2015-08-08 11:26:36 · 16516 阅读 · 0 评论 -
静态链接库和动态链接库
一、分别编译与链接(Linking)大多数高级语言都支持分别编译,程序员可以显式地把程序划分为独立的模块或文件,然后每个独立部分分别编译。在编译之后,由链接器把这些独立的片段(称为编译单元)“粘接到一起”。(想想这样做有什么好处?)在C/C++中,这些独立的编译单元包括obj文件(一般的源程序编译而成)、lib文件(静态链接的函数库)、dll文件(动态链接的函数库)等。静态链接方式:在转载 2015-08-08 11:24:58 · 224 阅读 · 0 评论 -
程序封装_随记(2)
第一次封装GMM函数,很快,好像不到一周吧,对,是前期查资料的时候用的时间长,我差不多把大家自己的写的GMM代码全部看了一遍,才对GMM的流程有些大概的了解;然后看GMM的经典文章,对其参数有些大概的概念。然后开始动手写代码,封装函数,由于有HiIVE的库,时间用的真的不多。封装完了,临了发个老大时,被拒了。我应该写Release版本,Release,不是新名词,以前听过,但是没有做过,其实内原创 2015-08-15 11:49:22 · 329 阅读 · 0 评论