在 CentOS 下使用 GCC 编译器时,可以使用许多选项来控制编译过程。以下是一些常用的 GCC 编译选项:
-c:仅编译源代码文件,生成目标文件(.o),不进行链接。
-o:指定输出文件的名称。例如,-o myprogram 将生成名为 myprogram 的可执行文件。
-Wall:显示所有警告信息。
-Wextra:显示额外的警告信息。
-g:生成调试信息,用于 GDB 调试器。
-O:优化选项,可以提高程序运行速度。例如,-O2 表示使用第二级优化。
-Os:优化代码大小,适用于嵌入式系统等对内存有限制的场景。
-std:指定 C 或 C++ 标准。例如,-std=c99 表示使用 C99 标准,-std=c++11 表示使用 C++11 标准。
-I:指定头文件搜索路径。例如,-I/usr/local/include 将在 /usr/local/include 目录下搜索头文件。
-L:指定库文件搜索路径。例如,-L/usr/local/lib 将在 /usr/local/lib 目录下搜索库文件。
-l:链接指定的库文件。例如,-lm 表示链接数学库。
-static:静态链接,将所有依赖的库文件都链接到可执行文件中。
-shared:生成共享库(动态链接库)。
-fPIC:生成位置无关代码(Position Independent Code),用于创建共享库。
-DNDEBUG:定义 NDEBUG 宏,通常用于关闭断言检查。
-D:定义宏。例如,-DDEBUG 将定义 DEBUG 宏。
这些选项可以组合使用,以满足不同的编译需求。例如,要使用 C++11 标准编译一个名为 myprogram 的程序,并生成调试信息,可以使用以下命令:
g++ -std=c++11 -g -o myprogram myprogram.cpp