我正在寻找编译期间使用的默认编译器标志。因此,我使用了命令gcc -Q -v <example.c>,感兴趣的输出如下所示:
GNU C (Ubuntu 4.8.4 -2 ubuntu1~14.04.3)版本4.8.4 (x86_64-linux- GNU ),由GNU C版本4.8.4、GMP版本5.1.3、MPFR版本3.1.2-p3、MPC版本1.0.1编译 GGC启发式算法:-param ggc-min-展开=100-param ggc heapsize=131072 通过的选项:-v -imultiarch x86_64-linux-gnu example.c -mtune=generic --mtune=generic=x86-64-fstack- -Wformat --Wformat-Wformat-安全性 启用了以下选项:-fban式-循环-优化fmath errno-fmerge- -fpeephole -fprefetch-循环数组-freg struct-stalled fsched-stalled关键路径-启发式-fsched-dep-count-fsched-fsched-group-启发式-fsched-fsched-最后-insn-启发式-fsched-fsched-c-fsched-快速c-fsched-fsched-失速-insns dep-fshow dep-fshow-列-fsplit s-不滚筒-fstack-fstack-ivs f严格-易失性。-bitfields -fsync-ftree-coalesce vars -ftree-cselim -ftree-forw赞助-ftree-循环-if-转换-ftree-循环-im-ftree-循环-ivcanon-ftree-循环--并行化-循环= -ftree-phiprop ftree-pta-ftree -ftree-scev-cprop -ftree-slp-vectorize -ftree-vect-循环-版本-funit-a-a时间-风向表-fvar-跟踪-跟踪-赋值化-bss-m128位-长-长-双-m64 -m80387 -m累计-传出-args-恶意-mfp-mfp-ret-in-in-387 -mfxsr -mglibc -mieee-mlong-mlong-80 -mmmx -mno-se4 -mpush-args -mred-zone -msse -msse2 -mtls-mtls-seg-ref
我现在想知道:启用选项的和传递的选项之间有什么区别?
发布于 2016-07-07 12:27:00
传递给的选项是通过配置(如-march=x86-64 -fstack-protector )或命令调用(如-v )添加到命令行的选项。这意味着这些选项在默认情况下不启用,必须由gcc命令指定。
启用选项的是启用的选项,通常用于在特定系统上使用该特定的gcc进行编译,只要通过选项,您就不会禁用其中的一些选项。
例如,在一个明确的环境中,调用gcc example.c将给您example.c作为只传递的选项,但是所有已启用的选项仍然相同。
https://stackoverflow.com/questions/38244309
复制相似问题