17.4. 使用 GCC 和 ar 创建静态库
通过将对象文件转换为特殊类型的存档文件,可以创建用于静态链接的库。
注意
出于安全原因,红帽不建议使用静态链接。只在需要时才使用静态链接,特别是红帽提供的库。请参阅 第 16.2 节 “静态和动态链接”。
先决条件
- GCC 和 binutils 已安装在系统中
- 了解静态和动态链接
- 包含要作为库共享函数的源文件
步骤
使用 GCC 创建中间对象文件。
$ gcc -c source_file.c ...
根据需要附加更多源文件。生成的对象文件共享文件名,但使用
.o
文件名称扩展名。使用
binutils
软件包中的ar
工具,将对象文件转换为静态库(存档)。$ ar rcs libfoo.a source_file.o ...
文件
libfoo.a
被创建。使用
nm
命令检查生成的归档:$ nm libfoo.a
- 将静态库文件复制到适当的目录。
与库链接时,GCC 将自动从
.a
文件扩展名中识别库是静态链接的存档。$ gcc ... -lfoo ...
其它资源
ar
工具的 Linux 手册页:$ man ar