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入口函数),不是选择其中一个

posted @ 2026-10-16 16:21  还在printf  阅读(2)  评论(0)    收藏  举报