1.编译单个文件
hello.c代码如下 #include<stdio.h> int main() { printf(“hello world\n”); return 0; }
然后保存,然后使用gcc hello.c 这样就会自动生成一个a.out文件 执行./a.out就会输出hello world
2.编辑多个文件
message.c代码如下 #include<stdio.h> void seeyou(void) { printf(“goodbye\n”); } hello.c文件内容如下 #include<stdio.h> void seeyou(); int main() { seeyou(); printf(“hello.c\n”); return 0; } 然后保存,然后使用gcc -c message.c会生成message.o 然后使用gcc -c hello.c会生成hello.o 然后使用gcc -o hello message.o hello.o 然后可以执行./hello看到输出goodbye和hello.c 上面的命令可直接使用gcc -o message.c hello.c这样就不会生成中间文件
gcc常用选项 -c 只预处理、编译和汇编源程序,不进行连接。编译器对每一个源程序产生一个目标文件。 -o file 确定输出文件为file。如果没有用-o选项,缺省的可执行文件的输出是 a.out,目标文件和汇编文件的输出对source.suffix分别是source.o和source.s,预处理的C源程序的输出是标准输出stdout。 -Dmacro或-Dmacro=defn 其作用类似于源程序里的#define。例如:% gcc -c -DHAVE_GDBM -DHELP_FILE=\”help\” cdict.c其中第一个- D选项定义宏HAVE_GDBM,在程序里可以用#ifdef去检查它是否被设置。第二个-D选项将宏HELP_FILE定义为字符串“help”(由于反斜线的作用,引号实际上已成为该宏定义的一部分),这对于控制程序打开哪个文件是很有用的。 -Umacro 某些宏是被编译程序自动定义的。这些宏通常可以指定在其中进行编译的计算机系统类型的符号,用户可以在编译某程序时加上 -v选项以查看gcc缺省定义了哪些宏。如果用户想取消其中某个宏定义,用-Umacro选项,这相当于把#undef macro放在要编译的源文件的开头。 -Idir 将dir目录加到搜寻头文件的目录列表中去,并优先于在gcc缺省的搜索目录。在有多个-I选项的情况下,按命令行上-I选项的前后顺序搜索。dir可使用相对路径,如-I../inc等。