赞
踩
有时候在做qt项目的时候,在网上找不到自己所需的第三方库满足需求,而在开发过程中又经常需要使用到某一些功能时,可以尝试自己编译公共的第三方库,在项目需要时将其导入使用
常使用到的库分为静态库和动态库:
Windows:.lib(静态库), .dll(动态库)
Linux:.so(动态库), .a(静态库)
静态库和动态库的区别:
首先需要理解什么是库:库就是提前写好的,完整的,可复用,可导入使用的已经被封装好的代码。在实际的大型项目开发之中,会使用很多的第三方库。
程序编译步骤:
所谓的静态和动态其实本质是指链接方式不一致,主要区别如下
1、链接阶段不一致:静态库对函数库的链接是放在编译时期完成的,动态库则是在程序运行时期进行链接的
2、目标文件:静态库与汇编生成的目标文件一起链接为可执行文件,程序在运行时与函数库再无瓜葛。动态库在程序编译的时候只有一个指向的位置,在程序运行的时候需要把动态库放置在自己指定的位置,所以一般使用相对位置,将动态库一起打包放在压缩包里面
3、加载速度不一致:静态库被打包到应用程序中加载速度更快,动态库还需要在运行时去寻找
4、资源:静态库内相同的库文件数据可能在内存中呗加载多份,耗费系统资源,浪费内存。动态库只需要指定给出一个文件数据的位置即可完成资源共享
好了,现在言归正传咯&#x
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。