GCC是GNU Compiler Collection(Linux的C编译器)的缩写。
$ gcc [options] [source files] [object files] [-o output file]
GCC主要选项:
| 选项 | 描述 |
|---|---|
| gcc -c | 无需链接即可将源文件编译为目标文件 |
| gcc -Dname[=value] | 定义预处理器宏 |
| gcc -fPIC | 为共享库生成位置无关的代码 |
| gcc -glevel | 生成调试信息以供GDB使用 |
| gcc -Idir | 添加头文件的包含目录 |
| gcc -llib | 与库文件链接 |
| gcc -Ldir | 在目录中查找库文件 |
| gcc -o output file | 将构建输出写入输出文件 |
| gcc -Olevel | 优化代码大小和执行时间 |
| gcc -shared | 生成共享库的共享对象文件 |
| gcc -Uname | 取消定义预处理器宏 |
| gcc -w | 禁用所有警告消息 |
| gcc -Wall | 启用所有警告消息 |
| gcc -Wextra | 启用额外的警告消息 |
编译file1.c和file2.c并链接到输出文件execfile:
$ gcc file1.c file2.c -o execfile
运行输出文件execfile:
$ ./execfile
无需链接即可编译file1.c和file2.c:
$ gcc -c file1.c file2.c
使用调试信息编译myfile.c并链接到输出文件execfile:
$ gcc -g myfile.c -o execfile
在启用警告消息的情况下编译myfile.c并链接到输出文件execfile:
$ gcc -Wall myfile.c -o execfile
编译myfile.c文件与和链接与静态库libmath.a位于/用户/本地/数学到输出文件的execfile:
$ gcc -static myfile.c -L/user/local/math -lmath -o execfile
通过优化编译myfile.c并链接到输出文件execfile:
$ gcc -O myfile.c -o execfile