在Debian系统中,gcc(GNU编译器集合)是一个用于编译C、C++等编程语言的命令行工具。以下是一些常用的gcc命令行参数:
通用参数
- -c:只编译源文件,不进行链接,生成目标文件(
.o)。
- -o :指定输出文件的名称。
- -Wall:开启所有警告信息。
- -Wextra:开启额外的警告信息。
- -Werror:将所有警告视为错误。
- -g:生成调试信息,便于使用调试器(如
gdb)。
- -O:优化级别,可选值为0到3,或
s(大小优化)、Os(空间优化)。
- -std=:指定C或C++标准,如
c99、c++11等。
- -I:添加头文件搜索路径。
- -L:添加库文件搜索路径。
- -l:链接指定的库文件。
C语言特定参数
- -D:定义宏。
- -U:取消定义宏。
- -E:只进行预处理,不编译、汇编或链接。
- -P:只进行预处理,并将结果输出到标准输出。
C++语言特定参数
- -std=:指定C++标准,如
c++11、c++14等。
- -fno-rtti:禁用运行时类型信息(RTTI)。
- -fno-exceptions:禁用异常处理。
链接器参数
- -static:静态链接所有库。
- -shared:生成共享库。
- -Wl,:将
<option>传递给链接器。
其他参数
- -v:显示详细的编译过程。
- -Q:查询特定标志的信息。
- -save-temps:保存中间文件(如预处理后的文件、汇编文件等)。
- -mmachine=:指定目标机器类型。
- -march=:指定目标处理器架构。
示例
gcc -o myprogram main.c -lm -Wall -O2
这个命令编译main.c文件,生成名为myprogram的可执行文件,链接数学库(-lm),开启所有警告并设置优化级别为2。
请注意,gcc的参数非常多且复杂,具体使用时可以根据需要查阅官方文档或使用man gcc命令查看详细信息。