【嵌入式开发】库与编译过程文件说明

1-.a文件

.a 文件是编译后的二进制静态库,‌不能直接当文本打开看‌,需要用专门命令“拆开”看。核心思路分两步:先用 ar 列出/解包里面的 .o 目标文件,再用 nm、objdump 看符号和汇编。‌‌

静态库文件是编译时链接的库,它将所有需要的函数和符号都打包在一个文件中。在编译时,编译器将静态库的代码复制到最终的可执行文件中。
使用静态库时,被依赖的代码会被复制到每个使用该库的可执行文件中。这意味着生成的可执行文件会比较大。
静态库适用于小型项目或者需要独立分发的应用程序。

2-.so文件

动态库文件是在运行时加载的库,它们不会和可执行文件一起打包。
使用动态库时,多个可执行文件可以共享同一个动态库文件。这样,如果动态库有更新或修复,只需更新动态库文件即可,而不需要单独重新编译所有的可执行文件。
动态库适用于大型项目或者需要共享代码的场景。
总的来说,静态库文件在编译时被链接到可执行文件中,而动态库文件在运行时被加载。静态库文件会增加可执行文件的大小,而动态库则支持代码的共享和更新。

 
posted @ 2026-10-01 12:50  大咖喝咖  阅读(1)  评论(0)    收藏  举报