Option
|
Description
|
-fabi-version=n
|
指定编译代码需要符合的C++ ABI(application binary interface)版本。对于GCC版本3.4及更高,默认的ABI版本是2。
|
-fcheck-new
|
保证new操作返回的指针为非空。
|
-fconserve-space
|
把全局变量的初始化操作延迟到运行的时候,common segment里的全局变量不初始化,这样减少可执行文件的大小。
|
-fdollars-in-identifiers
|
允许标识符里出现$符号(默认)。
|
-fms-extensions
|
使g++忽略Microsoft Foundation Classes (MFC)中非标准用法的警告信息。
|
-fno-access-control
|
禁止访问检查
|
-fno-const-strings
|
强制g++把字符串常量的类型定义成char *,而不管ISO C++标准是否要求是const char *。
|
-fno-elide-constructors
|
强制g++总是调用copy构造函数,即使在用临时对象初始化另一个同类型对象的时候。
|
-fno-enforce-eh-specs
|
禁止在运行时检查异常处理违例。
|
-ffor-scope
|
对于for语句初始化部分申明的变量,限制其作用域是for循环以内。你也可以用-fno-for-scope选项强制其作用域为下一个‘}’之前,虽然这和ISO标准冲突,但是旧版本g++和许多其他传统的C++编译器都是这样做的。
|
-fms-extensions
|
禁止对Microsoft Foundation Classes代码的不必要的警告。
|
-fno-gnu-keywords
|
禁止把typeof作为一个关键字,这样就可以用它作为标识符使用,你仍可以使用__typeof__关键字来代替它。该选项被包含在了-ansi选项里面。
|
-fno-implement-inlines
|
Saves space by not creating out-of-line copies of inline functions controlled by #pragma statements. Using this option will generate linker errors if the such functions are not inlined everywhere they are called
|
-fno-implicit-inline-templates
|
不创建隐含的模板实例以节省空间。(详见-fno-implicit-templates)
|
-fno-implicit-templates
|
只创建外联(非内联)模板的显式实例以节省空间。
|
-fno-nonansi-builtins
|
禁止使用非ANSI/ISO标准的内置属性,包括ffs、alloca、_exit、index、bzero、conjf及其他相关的函数。
|
-fno-operator-names
|
禁止使用and、bitand、bitor、compl、not、or和xor关键字作为对应操作符的同义词。
|
-fno-optional-diags
|
禁止非标准的内部语法诊断,比如类中特殊的名字应该在何时使用各种不同的形式。
|
-fno-rtti
|
禁止给类的虚函数产生运行时类型信息(RTTI)
|
-fno-threadsafe-statics
|
使g++不产生用于线程安全检查的代码,这样能减少代码量,如果不需要线程安全的话。
|
-fno-weak
|
使g++不使用弱符合支持,即使链接器支持它。这个选择用于g++测试的时候,其他时候请不要使用。
|
-fpermissive
|
把代码的语法错误作为警告,并继续编译进程。
|
-frepo
|
允许模板实例化在连接时自动进行。该选项包含了-fno-implicit-templates选项。
|
-fstats
|
编译完成后显示前端的统计信息。该选项一般只有g++开发人员使用。
|
-ftemplate-depth-n
|
保证模板实例化的递归深度不超过整数n。
|
-fuse-cxa-atexit
|
注册静态对象的析构函数时,使用__cxa_atexit而不是atexit。
|
-fvisibility=value
|
(GCC 4.02或以后)使g++不导出ELF(Executable and Linking Format,Linux和Solaris等系统上默认的2进制文件格式)中用hidden标识的object模块内或库内的符号。该选项能减少目标文件大小,加快符号表的查找,从而改善运行性能。但是,该选项也会因为不同的visibility等级而导致模块间抛出异常发生问题,详见后面的““Visibility Attributes and Pragmas for GCC C++ Libraries”一节。如果没有使用该选项,那么默认的visibility值是default,即导出所有目标文件和库里的符号。
|
-nostdinc++
|
禁止在C++的标准目录里搜索头文件。
|