ubuntu 如何编译文件夹一群.c文件成.a文件
时间: 2023-12-14 13:36:56 浏览: 82
可以使用以下命令将一组 `.c` 文件编译成一个静态库(`.a` 文件):
```bash
gcc -c *.c # 编译所有 .c 文件
ar rcs libname.a *.o # 将编译好的 .o 文件打包成 .a 文件
```
这里假设所有的 `.c` 文件都在同一个文件夹下,且要编译的文件名均以 `.c` 结尾。`-c` 参数表示只编译,不链接,生成 `.o` 目标文件,`ar rcs` 命令用于将所有 `.o` 文件打包成一个静态库(`.a` 文件)。其中 `libname.a` 是你想要生成的库的名字,可以自定义。打包完成后,会在当前文件夹下生成一个 `.a` 文件。
需要注意的是,如果需要使用这个静态库,需要在代码中添加头文件和链接该库,如下所示:
```c
#include "xxx.h" // xxx.h 是需要引用的头文件
int main() {
// ...
return 0;
}
```
编译时需要指定链接库的路径和名字:
```bash
gcc main.c -L./ -lname -o main.out
```
其中 `-L` 参数指定库文件的路径,`-lname` 参数指定库文件的名字。`-o` 参数指定输出文件的名字。
阅读全文