Linux 动静态库的制作,使用和加载
在Linux中制作动态库(共享库)和静态库的步骤非常相似。以下是创建和使用静态库和动态库的简要步骤和示例代码:
静态库制作(.a)
编写源代码(例如:
lib.c
)并编译它。gcc -c lib.c -o lib.o
创建静态库。
ar rcs libstatic.a lib.o
动态库制作(.so)
编写源代码(例如:
lib.c
)并编译它。gcc -fPIC -shared -o libdynamic.so lib.c
库的使用
当你想要使用库时,你需要在编译你的程序时指定库的路径。
使用静态库编译程序。
gcc main.c -lstatic -L. -o main_static
使用动态库编译程序。
gcc main.c -ldynamic -L. -o main_dynamic
在上述命令中,-lstatic
或 -ldynamic
告诉编译器链接器要链接的库的名称(不包括前缀 lib
和后缀 .a
或 .so
)。-L.
指定库搜索路径为当前目录。
注意:
- 动态库在运行时需要在系统的标准库路径中或者通过设置环境变量
LD_LIBRARY_PATH
来指定库的路径。 - 使用
-fPIC
选项是为了生成位置无关的代码,这对于共享库是必要的。 - 库的名称通常以
lib
开头,后跟实际的库名,再跟.a
或.so
后缀。例如libstatic.a
或libdynamic.so
。链接时只需要指定库名,不需要包括完整的前缀或后缀。
评论已关闭