gcc 编译动态和静态链接库 我们通常把一些公用函数制作成函数库,供其它程序使用
函数库分为静态库和动态库两种
静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库
动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在
本文主要通过举例来说明在 Linux 中如何创建静态库和动态库,以及使用它们
第 1 步:编辑得到举例的程序--hello
c 和test
c; 测试程序test
c 调用了公用函数my_lib_function
c: #include void my_lib_function() { printf("library routine called\n"); } test
c: int main() { my_lib_function(); return 0; } 第 2 步:将 hello
o 文件; 无论静态库,还是动态库,都是由
o 文件创建的(动态库可以直接通过
因此,我们必须将源程序 hello
c 通过gcc 先编译成
在系统提示符下键入以下命令得到 hello
# gcc -c hello
c 第 3 步:由
o 文件创建静态库; 静态库文件名的命名规范是以lib 为前缀,紧接着跟静态库名,扩展名为
例如:我们将创建的静态库名为 myhello,则静态库文件名就是libmyhello
在创建和使用静态库时,需要注意这点
创建静态库用 ar 命令
在系统提示符下键入以下命令将创建静态库文件libmyhello
# ar crv libmyhello
a hello
o 第 4 步:在程序中使用静态库; 静态库制作完了,如何使用它内部的函数呢
只需要在使用到这些公用函数的源程序中包含这些公用函数的原型声明,然后