将昨天的php代码改造成C++ 上面定义了一个头文件,定义base64的类 base64类中方法的定义实际上是在base_64.cpp中进行的。 上面的两个文件用来生成一个静态链接库:libbase_64.a 下面来进行实际的测试: 编译代码并运行 输出效果: 在改造昨天的php代码过程中,还参考了 ...
分类:
编程语言 时间:
2016-05-27 20:04:02
阅读次数:
988
1 静态链接库的优点 (1) 代码装载速度快,执行速度略比动态链接库快; (2) 只需保证在开发者的计算机中有正确的.LIB文件,在以二进制形式发布程序时不需考虑在用户的计算机上.LIB文件是否存在及版本问题,可避免DLL地狱等问题。 2 动态链接库的优点 (1) 更加节省内存并减少页面交换; (2 ...
分类:
其他好文 时间:
2016-05-13 10:28:03
阅读次数:
123
静态链接库在链接时,编译器会将 .obj 文件和 .LIB 文件组织成一个 .exe 文件,程序运行时,将全部数据加载到内存。
如果程序体积较大,功能较为复杂,那么加载到内存中的时间就会比较长,最直接的一个例子就是双击打开一个软件,要很久才能看到界面。这是静态链接库的一个弊端。
动态链接库有两种加载方式:隐式加载和显示加载。
隐式加载又叫载入时加载,指在主程序载入内存时搜索DLL...
分类:
其他好文 时间:
2016-05-13 04:17:38
阅读次数:
236
花了一周时间用于添加QWT,大概是因为QWT的版本更新的原因。按照之前学姐发的文档配置,虽然可以把QWT控件加入Designer中,但是完全无法编译。我才觉得是之前的配置方法出了问题,可能已经不适合最新版本的QWT了。重新看了一下配置过程,发现之前的配置方法出现了一个致命的错误——没有添加静态链接库.a文件,之前的步骤虽然能添加控件进程序这是没问题的,然而.a文件是编译exe需要的。如果只添加控件...
分类:
其他好文 时间:
2016-05-13 03:20:11
阅读次数:
213
动态链接库dll: Dynamic-link Library
是一种不可执行的二进制程序文件,包含被可执行程序和其他dll调用的函数。
windows中最重要的dll:
Kernel32.dll:管理内存、进程、线程。
User32.dll:执行用户界面任务,比如窗口的创建和消息的传送。
GDI32.dll:画图和显示文本。
dll不是唯一的扩展名,如linux下常常是.so。
使用:
需要文件...
分类:
编程语言 时间:
2016-05-12 19:18:49
阅读次数:
209
GCC 编译使用动态链接库和静态链接库
1 库的分类
根据链接时期的不同,库又有静态库和动态库之分。
静态库是在链接阶段被链接的(好像是废话,但事实就是这样),所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行。
有别于静态库,动态库的链接是在程序执行的时候被链接的。所以,即使程序编译完,库仍须保留在系统上,以供程序运行时调用。(TODO:链接动...
分类:
其他好文 时间:
2016-05-12 15:11:14
阅读次数:
417
概论
先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。
静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该DLL...
分类:
编程语言 时间:
2016-05-07 07:39:19
阅读次数:
222
3 目标文件里有什么 3.1 目标文件格式 1)可执行文件:PE(Windows) 和 ELF(linux), 都是COFF格式的变种。目标文件(.obj, .o)采用一样的格式。 2)动态链接库:(windows的.dll,linux的.so) 3) 静态链接库:(.lib, .a) 3.2 目标 ...
分类:
其他好文 时间:
2016-05-03 22:16:48
阅读次数:
245
首先去官方网站下载gdb的源码包,我下载的7.4.1版本的源码包,解压开来,进入到源码包的根目录下。对于一个源码包,拿到手里首先要阅读的就是README,然后看一下INSTALL文件,这个文件里编译源码包的步骤。 基本上所有的源码包都是三步,configure,make,make install。 ...
分类:
系统相关 时间:
2016-05-01 21:50:58
阅读次数:
526