gcc 编译控制选项
gcc 编译控制选项
前面已经讲过, gcc 的基本用法是:
$ gcc [选项] [文件名]
gcc 有很多编译控制选项,使得 gcc 可以根据不同的参数进行不同的编译处理,可供 gcc
调用的参数大约有 100 来个,但实际使用中并不会用到这么的多选项和参数。这里只介绍一
些最基本和常用的控制选项以及参数,如表 10.3 所列。
表 10.3 gcc 常用选项和参数
| 名称 | 功能描述 |
| -c | 只编译不链接。编译器只是将输入的.c 等源代码文件生成.o 为后缀的目标文件,通 常用于编译不包含主程序的子程序文件 |
| -S | 只对文件进行编译,不汇编和链接 |
| -E | 只对文件进行预处理,不编译汇编和链接 |
| -o output_filename | 确定输出文件的名称为 output_filename,这个名称不能和源文件同名。如果不给出 这个选项, gcc 就给出预设的可执行文件 a.out |
| -g | 产生符号调试工具(GNU 的 gdb)所必要的符号信息,要想对源代码进行调试,就必 须加入这个选项。 g 也分等级,默认是-g2, -g1 是最基本的, -g3 包含宏信息 |
| -DFOO=BAR | 在命令行定义预处理宏 FOO,值为 BAR |
| -O | 对程序进行优化编译、链接。采用这个选项,整个源代码会在编译、链接过程中进 行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、链接的速 |
| 度就相应地要慢一些 | |
| -ON | 指定代码的优化等级为 N,可取值为 0、 1、 2、 3; O0 没有优化, O3 优化级别最高 |
| -Os | 使用了-O2 的优化部分选项,同时对代码尺寸进行优化 |
| -Idirname | 将 dirname 目录加入到程序头文件搜索目录列表中,是在预编译过程中使用的参数 |
| -L dirname | 将 dirname 目录加入到库文件的搜索目录列表中 |
| -l FOO | 链接名为 libFOO 的函数库 |
| -static | 链接静态库 |
| -ansi | 支持 ANSI/ISO C 的标准语法,取消 GNU 语法中与该标准相冲突的部分 |
| -w | 关闭所有警告,不建议使用 |
| -W | 开启所有 gcc 能提供的警告 |
| -werror | 将所有警告转换为错误,开启该选项,遇到警告都会中止编译 |
| -v | 显示 gcc 执行时执行的详细过程, 以及 gcc 和相关程序的版本号 |
gcc 编译控制选项的更多相关文章
- GCC编译警告选项总结
一 前言 GCC有很多的编译选项,警告选项:指定头文件.库路径:优化选项.本文针整理一下GCC的警告选项,主要依据http://gcc.gnu.org/onlinedocs/gcc/Warning-O ...
- gcc编译常用选项
我的博客:www.while0.com GDB调试: -g 生成的可执行文件才可以用gdb调试 (建议在发行版中用strip filename 来把这些调试信息去除) 开始调试. 以下是基础调试命令: ...
- Linux下gcc编译控制动态库导出函数小结
根据说明文档“How To Write Shared Libraries"介绍, 有四种方法: 1. 在方法声明定义时,加修饰:__attribute__((visibility(" ...
- gcc编译 汇编 选项
gcc生成main.out的步骤分解:<blockquote>main.c-----(-S 编译)-------->main.s-------(-c 汇编)------->ma ...
- GCC编译命令常用选项
GCC是GUN Compiler Collection的简称,除编译程序外,还包含其他相关工具.GCC可将高级语言编写的源代码构建成计算机直接执行的二进制代码.GCC是Linux平台下最常用的编译程序 ...
- Linux gcc编译之-std选项
用GCC编译代码时候后面带有-std=c++1z 的选项,这是指定c/c++的标准.具体的标准如下,详细信息可以看引用里面的详细说明
- gcc 编译 + 选项【转】
转自:http://blog.csdn.net/princess9/article/details/6567678 一般来说要现有项目中的编译选项,设置新的project的编译选项 编译器 就是将“高 ...
- 使用CMake,且在GCC编译时指定相对源代码路径选项BUG的问题
CMake的build.make,每次都是cd xxx目录,然后再编译 而编译时,GCC会取当前路径保存进调试信息的DT_AT_comp_dir,GCC的编译器选项-fdebug-prefix-map ...
- Linux 下 GCC 编译共享库控制导出函数的方法
通过一些实际项目的开发,发现这样一个现象,在 Windows 下可以通过指定 __declspec(dllexport) 定义来控制 DLL(动态链接库)中哪些函数可以导出,暴露给其他程序链接使用,哪 ...
随机推荐
- 菜鸟教程C++(一)
一.C++基本语法 C++程序可以定义为对象的集合,这些对象可以通过调用彼此的方法进行交互. 对象:对象具有状态和行为.例如:一只狗的状态:颜色.名称.品种等,行为:摇动.叫唤等.对象是类的实例. 类 ...
- Dolly
dolly - 必应词典 美['dɑli]英['dɒli] n.洋娃娃:(搬运重物的)台车 v.用独轮车运(物):用搅拌棒洗(衣):用捣棒捣碎(矿石) 网络多莉:多利:移动式摄影小车 变形复数:dol ...
- windows如何查看jdk的安装目录
1.检查电脑上是否安装了JDK可以在cmd窗口输入java -version查看是否需安装了JDK 2.查看JDK的安装目录 一种是在cmd窗口输入java -verbose,查看最后一行即为JDK安 ...
- ThreadLocal:的面试
ThreadLocal: 为解决多线程程序的并发问题提供了一种新的思路.使用这个工具类可以很简洁地编写出优美的多线程程序. 当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变 ...
- Android: 判断当前手机品牌(转)
参考资料 Android判断手机ROM 正文 有时候需要判断手机系统的ROM,检测ROM是MIUI.EMUI还是Flyme,可以使用getprop命令,去系统build.prop文件查找是否有对应属性 ...
- 一个简单的java爬虫
直接上代码: package com.jeecg.util; import java.io.BufferedReader; import java.io.IOException; import jav ...
- rabbitmq - 消息接收,解析xml格式数据时异常:ERROR not well-formed (invalid token): line 4, column 46
ERROR alsv odoo.addons.cus_alsv.utils.alsv_about_mq.get_data_from_mq: parse_xml_data_from_mq: not we ...
- 解决IDEA中Lombok生成代码后提示错误的问题
一.背景介绍 因为我们在使用Lombok的时候,Lombok为我们生成的代码是在字节码中(*.class),而不是在source code中,所以存在IDE提示Lombok生成的方法未定义的错误,导致 ...
- ChrW函数
ChrW 函数返回包含 Unicode 的 String,若在不支持 Unicode 的平台上,则其功能与 Chr 函数相同.相反的函数是 ASCW() 在access当中用到了
- javascript中this、new、apply和call详解
如果在javascript语言里没有通过new(包括对象字面量定义).call和apply改变函数的this指针,函数的this指针都是指向window的,重要的话要说三遍.... 讲解this指针的 ...