列表

详情


2. 静态库和动态库如何制作及使用,区别是什么

回答思路

得分点 命名规则、制作指令、使用、区别 标准回答 1. 静态库的制作和使用 - 命名规则 Linux : libxxx.a lib : 前缀(固定) xxx : 库的名字,自己起 .a : 后缀(固定) Windows : libxxx.lib - 制作 a.gcc 获得 .o 文件 gcc xxx.c xxx.c -c b.将 .o 文件打包,使用 ar 工具(archive) ar rcs libxxx.a xxx.o xxx.o - 使用 静态库使用需要有库文件和头文件,编译程序时通过 “-l 静态库名” 参数进行编译。 2. 动态库的制作 - 命名规则 Linux : libxxx.so lib : 前缀(固定) xxx : 库的名字,自己起 .so : 后缀(固定) Windows : libxxx.dll - 制作 a.gcc 得到 .o 文件,得到和位置无关的代码 gcc -c –fpic/-fPIC a.c b.c b.gcc 得到动态库 gcc -shared a.o b.o -o libcalc.so - 使用 动态库使用需要有库文件和头文件,编译程序时通过 “-l 动态库名” 参数进行编译。在运行程序之前还需要配置动态库的加载路径,程序才能够正常运行。 3. 静态库和动态的区别 - 静态库 gcc 进行链接时,会把静态库中代码打包到可执行程序中,编译时加载;发布程序时无需提供静态库,移植方便;消耗内存,更新部署发布麻烦。 - 动态库 gcc 进行链接时,动态库的代码不会被打包到可执行程序中,运行时加载;发布程序时需要提供动态库;内存占用小,更新部署发布简单。

上一题