在 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