GCC编译C程序的全面指南
1. 语法检查选项
使用 -fsyntax-only
选项调用GCC时,它不会进行预处理、编译、汇编或链接操作,仅对输入文件进行语法正确性测试。
2. 多输入文件处理
当将 circle.c
拆分为两个独立源文件时,编译多个源文件会生成多个目标文件,每个目标文件包含对应源文件中对象的机器代码和符号。GCC默认使用临时文件存储目标输出,若使用 -c
选项,则仅进行编译而不链接。
$ gcc -c circle.c
$ gcc -c circulararea.c
上述命令会在当前工作目录生成 circle.o
和 circulararea.o
两个目标文件。也可以将两个源文件名放在同一个GCC命令行中:
$ gcc -c circle.c circulararea.c
在实际开发中,大型程序由多个源文件组成,开发过程中需要多次编译、测试、编辑和重新编译。为节省时间,可使用 make
工具控制构建过程,仅重新编译比对应源文件最新版本旧的目标文件。
所有目标文件从当前源文件编译完成后,可使用GCC进行链接:
$ gcc -o circle circle.o circ