博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GCC参数
阅读量:6990 次
发布时间:2019-06-27

本文共 4264 字,大约阅读时间需要 14 分钟。

hot3.png

$ gcc --help

Usage: gcc [options] file...

Options:

  -pass-exit-codes         Exit with highest error code from a phase

  --help                   Display this information

  --target-help            Display target specific command line options

  --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...]

                           Display specific types of command line options

  (Use '-v --help' to display command line options of sub-processes)

  --version                Display compiler version information

  -dumpspecs               Display all of the built in spec strings

  -dumpversion             Display the version of the compiler

  -dumpmachine             Display the compiler's target processor

  -print-search-dirs       Display the directories in the compiler's search path

  -print-libgcc-file-name  Display the name of the compiler's companion library

  -print-file-name=<lib>   Display the full path to library <lib>

  -print-prog-name=<prog>  Display the full path to compiler component <prog>

  -print-multiarch         Display the target's normalized GNU triplet, used as

                           a component in the library path

  -print-multi-directory   Display the root directory for versions of libgcc

  -print-multi-lib         Display the mapping between command line options and

                           multiple library search directories

  -print-multi-os-directory Display the relative path to OS libraries

  -print-sysroot           Display the target libraries directory

  -print-sysroot-headers-suffix Display the sysroot suffix used to find headers

  -Wa,<options>            Pass comma-separated <options> on to the assembler

  -Wp,<options>            Pass comma-separated <options> on to the preprocessor

  -Wl,<options>            Pass comma-separated <options> on to the linker

  -Xassembler <arg>        Pass <arg> on to the assembler

  -Xpreprocessor <arg>     Pass <arg> on to the preprocessor

  -Xlinker <arg>           Pass <arg> on to the linker

  -save-temps              Do not delete intermediate files

  -save-temps=<arg>        Do not delete intermediate files

  -no-canonical-prefixes   Do not canonicalize paths when building relative

                           prefixes to other gcc components

  -pipe                    Use pipes rather than intermediate files

  -time                    Time the execution of each subprocess

  -specs=<file>            Override built-in specs with the contents of <file>

  -std=<standard>          Assume that the input sources are for <standard>

  --sysroot=<directory>    Use <directory> as the root directory for headers

                           and libraries

  -B <directory>           Add <directory> to the compiler's search paths

  -v                       Display the programs invoked by the compiler

  -###                     Like -v but options quoted and commands not executed

  -E                       Preprocess only; do not compile, assemble or link

  -S                       Compile only; do not assemble or link

  -c                       Compile and assemble, but do not link

  -o <file>                Place the output into <file>

  -pie                     Create a position independent executable

  -shared                  Create a shared library

  -x <language>            Specify the language of the following input files

                           Permissible languages include: c c++ assembler none

                           'none' means revert to the default behavior of

                           guessing the language based on the file's extension

Options starting with -g, -f, -m, -O, -W, or --param are automatically

 passed on to the various sub-processes invoked by gcc.  In order to pass

 other options on to these processes the -W<letter> options must be used.

-x language filename

设定文件所使用的语言, 使后缀名无效, 对以后的多个有效

gcc -x c hello.pig

-x none filename

关掉上一个选项也就是让 gcc 根据文件名后缀自动识别文件类型

gcc -x c hello.pig -x none hello2.c

-E

只预处理, 查看结果需要重定向

gcc -E hello.c > pianoapan.txt

gcc -E hello.c | more

-S

只激活预处理和编译, 生成 .s 的汇编代码

gcc -S hello.c

-c

只激活预处理编译和汇编, 生成 .o 的 obj 文件

gcc -c hello.c

-o FILE

编译后产生的文件名

gcc -o hello.exe hello.c 

gcc -o hello.asm -S hello.c

-std c89

-std c99

-std c11

-std gnu99

-std gnu11

-std c++98

-std c++11

-ansi

关闭 gnu c 中与 ansi c 不兼容的特性 , 激活 ansi c 的专有特性 ( 包括禁止一些 asm inline typeof 关键字 , 以及 UNIX,vax 等预处理宏 

-lxx

-llibxx.so

-Lxx

-LDir

-Ixx

-IInclude

-O0

不进行优化处理

-O  -O1  -O2  -O3

-shared -static

-w

不生成任何警告信息

-Wall

生成所有警告信息

-W

不包含在Wall中一般情况下,-W 和 -Wall同时使用

-Werror

将warn视为error并停止编译

-Dmacro

#define macro

32位版:加上 -m32 参数,生成32位的代码

64位版:加上 -m64 参数,生成64位的代码
debug版:加上 -g 参数,生成调试信息
release版:加上 -static 参数,进行静态链接,使程序不再依赖动态库

加上 -O3 参数,进行最快速度优化

加上-DNDEBUG参数,定义NDEBUG宏,屏蔽断言

当没有-m32或-m64参数时,一般情况下会生成跟操作系统位数一致的代码,但某些编译器存在例外,例如

32位Linux下的GCC,默认是编译为32位代码

64位Linux下的GCC,默认是编译为64位代码
Window系统下的MinGW,总是编译为32位代码。因为MinGW只支持32位代码
Window系统下的MinGW-w64(例如安装了TDM-GCC,选择MinGW-w64),默认是编译为64位代码,包括在32位的Windows系统下

转载于:https://my.oschina.net/robslove/blog/267324

你可能感兴趣的文章
四个程序员的一天
查看>>
使用maven创建javaweb项目
查看>>
dubbo 2.5.4 在JDK8下启动错误
查看>>
eclipse中Build Path-Add to Build Path对应到androidstud
查看>>
Mysql,Zookeeper,Redis,Mongodb压力测试结果
查看>>
JQuery中操作Css样式的方法
查看>>
企业级Android Application Activity管理
查看>>
自己动手写一个Alarm
查看>>
页面加载条实现思路
查看>>
WebSocket在HTTP Proxy下是可以,可是有点小笨拙之处给人造成不便
查看>>
10.新浪微博Swift项目第十天
查看>>
通过vsphere golang webservice sdk 获取vmware主机、虚拟机的监控数据【一】
查看>>
第二十八讲:tapestry与可重复使用的javaScript
查看>>
Spring Cloud Edgware新特性
查看>>
用docker 搭建 node.js服务,端口映射无效
查看>>
【转载】干货再次来袭!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载八)用命令实...
查看>>
VS2010 简单ATL COM开发
查看>>
Hadoop2.7.1配置NameNode+ResourceManager高可用原理分析
查看>>
linux重启oracle 各种方法
查看>>
mysql替换某个字段所有值
查看>>