C语言单个文件编译和多个文件缝合编译
// 编译:单个文件编译需要注意的地方
gcc ./main.c // 编译成 a.out/a.exe
gcc -c ./main.c // 编译成 main.o
// 用人话讲:就是把-o理解成output, 不管-o放在那里,后面跟着的一定是可执行文件(xxx.exe/xxx.out)
// 例如:gcc -o main.exe main.c或者是gcc main.c -o main.exe
// 多个文件编译
demo1.c
#include<stdio.h>
void func1() {
printf("i am demo1\n");
}
demo2.c
#include<stdio.h>
void func2() {
printf("i am demo2\n");
}
demo3.c
#include<stdio.h>
void func1(); // 声明
void func2(); // 声明
int main(){
func1(); // 调用demo1.c里的函数
func2(); // 调用demo2.c里的函数
return 0;
}
// 然后可以用下面两个方法区编译,下面两个方法是一样的
// 方案1: 分开编译
gcc -c demo1.c // 生成 demo1.o
gcc -c demo2.c // 生成 demo2.o
gcc -c demo3.c // 生成 demo3.o
gcc demo1.o demo2.o demo3.o -o main.exe
// 方案2:打包编译
gcc demo1.c demo2.c demo3.c -o main.exe
// 总结:把三个(demo1.c/demo2.c/demo3.c)文件缝合成一个程序,从唯一的main开始跑(注意:这三个.c文件里面有且只能有一个main入口函数),不是选择其中一个
浙公网安备 33010602011771号