Linux C 静态库如何生成并使用
1. 编写源文件
首先创建一个简单的示例项目,包含一个头文件和一个源文件。
头文件 my_lib.h
// my_lib.h
#ifndef MY_LIB_H
#define MY_LIB_H
// 函数声明
int add(int a, int b);
#endif
源文件 my_lib.c
#include <stdio.h> void print_hello() { printf("Hello from yy.c!\n"); }
2. 编译源文件生成目标文件
使用 gcc
编译器把 yy.c
编译成目标文件 yy.o
:
gcc -c yy.c
3. 创建静态库
运用 ar
命令把 yy.o
打包成静态库 libxx.a
:
ar -cr libxx.a yy.o
4. 使用静态库
编写一个主程序 main.c
来使用这个静态库:
// main.c
#include <stdio.h>
// 声明静态库中的函数
void print_hello();
int main() {
print_hello();
return 0;
}
5. 编译并链接主程序
使用 gcc
编译 main.c
并链接 libxx.a
静态库:
-L.
:指定静态库的搜索路径为当前目录。-lxx
:链接名为libxx.a
的静态库(注意:-l
后面的名字是去掉lib
前缀和.a
后缀的部分)。
gcc -o main main.c -L. -lxx
6.头文件搜索路径
在编译 C 或 C++ 程序时,编译器需要找到所包含头文件的位置。gcc
和 g++
等编译器默认会在一些标准目录中搜索头文件,其中就包括 /usr/local/include
。
如果把.a文件拷贝到/usr/local/lib 和.h头文件copy到 /usr/local/include下。 那么可以省略-L.选项