静态库和动态库

编译器将.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? 玩笑一下。。

 

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

 

posted @ 2016-05-25 12:22  愚人1984  阅读(296)  评论(0编辑  收藏  举报