静态库和动态库

Posted 愚人1984

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了静态库和动态库相关的知识,希望对你有一定的参考价值。

编译器将.c文件编译成.o文件。

动态库是用.o生成.so文件,一般命令为lib***.so  ,编译时其不被link到目前代码中,程序运行时载入。

 

静态库实用.o生成.a 文件,命令为 lib***.a   编译时被link到目标代码中。

想起自己写过的驱动代码,将很大的芯片的driver,编程一个.a文件,再提供一个.h文件。这个.a一般都很大,好几M。 然后别的同事再拿着这个.a和.h来用,最后把.a文件全部包到新生成的.z文件中,形成一个更大的几M的板卡运行程序。

 

.a和.so都是在嵌入式领域,linux和QNX都是这这样命名的。

window编程中,动态库是.dll;静态库是.lib。

之前曾用过4年半的Vxworks,映像中只用到过.a,没用过.so;心生奇怪。刚才网上搜了一下,果不其然,vxworks在6.x之后的版本才支持的动态库。  呵呵,难不成为了支持这个,windriver才专门把tornado改成了workbench? 玩笑一下。。

 

写写博客,时时回头总结,真的是一个好东西。。。

 

以上是关于静态库和动态库的主要内容,如果未能解决你的问题,请参考以下文章

C语言里面的动态库和静态库

动态库和静态库的区别

Linux下的静态库和动态库

CMake 学习四:CMake 构建静态库和动态库

Linux下的动态库和静态库详解

CGO静态库和动态库