在Linux环境下编译生成静态库,主要涉及以下几个基础概念:
.a
为扩展名。在编译时,静态库中的代码会被链接到可执行文件中,因此生成的可执行文件会包含所有必要的库代码。file1.c
和file2.c
。r
:将文件插入归档文件中,如果文件已存在则替换。c
:创建归档文件,如果归档文件已存在则忽略。s
:创建索引,加快查找速度。-L
选项指定库文件路径。-l
选项指定库文件名(去掉前缀lib
和后缀.a
)。-l
选项指定库文件名(去掉前缀lib
和后缀.a
)。假设有两个源文件file1.c
和file2.c
,内容如下:
file1.c
#include <stdio.h>
void func1() {
printf("This is func1 from file1.c\n");
}
file2.c
#include <stdio.h>
void func2() {
printf("This is func2 from file2.c\n");
}
main.c
extern void func1();
extern void func2();
int main() {
func1();
func2();
return 0;
}
编译生成静态库并链接到可执行文件的步骤如下:
输出结果应为:
This is func1 from file1.c
This is func2 from file2.c
通过以上步骤,你可以在Linux环境下成功编译生成静态库并链接到可执行文件中。
领取专属 10元无门槛券
手把手带您无忧上云