[root@bogon demo]# ls
demo1.c demo2.c
[root@bogon demo]# cat demo1.c
#include<stdio.h>
int main(){
printf("GCC:http://c.biancheng.net/gcc/");
return 0;
}
[root@bogon demo]# cat demo2.c
#include<stdio.h>
int main(){
printf("Python:http://c.biancheng.net/python/");
return 0;
}
[root@bogon demo]# gcc -c demo1.c -o demo1.o
[root@bogon demo]# gcc -c demo2.c -o demo2.o
[root@bogon demo]# ls
demo1.c demo1.o demo2.c demo2.o
[root@bogon demo]# gcc -c demo1.c demo2.c
[root@bogon demo]# ls
demo1.c demo1.o demo2.c demo2.o
[root@bogon demo]# gcc -c demo1.c demo2.c -o demo1.o demo2.o
gcc: demo2.o: No such file or directory
gcc: cannot specify -o with -c or -S with multiple files
仍以 demo1.c 和 demo2.c 源程序文件为例:注意,多个 C(C++)源文件也可以使用一条 gcc -E 指令完成预处理操作,但由于该指令默认情况下只会将预处理结果输出到屏幕上,因此预处理操作虽然可以完成,但无法生成各自对应的预处理文件。
[root@bogon demo]# gcc -E demo1.c -o demo1.i
[root@bogon demo]# ls
demo1.c demo1.i demo2.c
[root@bogon demo]# gcc -c demo1.i demo2.c
[root@bogon demo]# ls
demo1.c demo1.i demo1.o demo2.c demo2.o
[root@bogon demo]# ls
main.c myfun.c
[root@bogon demo]# cat main.c
#include <stdio.h>
int main(){
display();
return 0;
}
[root@bogon demo]# cat myfun.c
#include <stdio.h>
void display(){
printf("GCC:http://c.biancheng.net/gcc/");
}
[root@bogon demo]#
[root@bogon demo]# ls
main.c myfun.c
[root@bogon demo]# gcc -c myfun.c main.c
[root@bogon demo]# ls
main.c main.o myfun.c myfun.o
[root@bogon demo]# gcc myfun.o main.o -o main.exe
[root@bogon demo]# ls
main.c main.exe main.o myfun.c myfun.o
[root@bogon demo]# ./main.exe
GCC:http://c.biancheng.net/gcc/
[root@bogon demo]# gcc myfun.c main.c -o main.exe
[root@bogon demo]# ls
main.c main.exe myfun.c
[root@bogon demo]# ./main.exe
GCC:http://c.biancheng.net/gcc/
[root@bogon demo]# ls
main.c myfun.c
[root@bogon demo]# gcc *.c -o main.exe
[root@bogon demo]# ls
main.c main.exe myfun.c
[root@bogon demo]# ./main.exe
GCC:http://c.biancheng.net/gcc/
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有