编译选项
-
-c: 只编译源文件,不进行链接,生成目标文件。 -
-o <file>: 指定输出文件的名称。 -
-g: 生成调试信息,允许使用调试器进行调试。 -
-O<level>: 指定优化级别(0到3),其中0表示无优化,3表示最大优化。 -
-Wall: 启用常见警告信息。 -
-std=<standard>: 指定C++标准(如-std=c++11)。 -
-I <dir>: 添加包含文件搜索路径。 -
-L <dir>: 添加库文件搜索路径。 -
-l <library>: 链接指定的库。 -
-m<32/64/x32/486>:编译器中的架构选项,用于指定目标系统的位数,通常使用-m64 -
-fPIC是g++编译器的一个选项,用于生成位置无关代码(Position Independent Code,PIC)。位置无关代码是一种可在内存中加载并运行的代码,而不受加载地址的限制。这通常在创建共享库或动态链接库(.so文件或.dll文件)时使用。 -
-fvisibility=hidden:选项的作用是将编译单元(通常是一个源文件或一个库)中的符号默认设为“隐藏”。这意味着只有在同一编译单元内的其他部分可以访问这些符号,而在不同编译单元之间无法访问。这对于实现信息封装、减少符号污染以及提高代码的安全性非常有用。使用这个选项通常需要与其他一些编译器指令一起使用,以明确指定哪些符号应该是可见的(例如,使用__attribute__((visibility("default"))))。主要用于UNIX/Linux平台上的共享库或动态链接库的开发。
链接选项
-shared: 生成共享库。-static: 静态链接所有库。-Wl,<option>: 将<option>传递给链接器。
预处理宏选项
-D <macro>: 定义预处理宏。-U <macro>: 取消预处理宏的定义。
依赖关系选项
-M和-MM: 自动生成Makefile所需的依赖关系信息。
其他选项
-E: 只执行预处理,生成预处理后的源代码。-S:生成汇编.s文件
参考
g++ 编译选项:https://blog.csdn.net/qq_44632658/article/details/131152115