gcc用于linux系统下编程的编译器选项说明

GC++(GNU Compiler Collection,GNU编译器套装),是一套由 GNU 开发的编程语言编译器。它是一套&">nbsp; GNU编译器套装以 GPL 及 LGPL 许可证所发行的自由软件,也是 GNU计划的关键部分,亦是自由的类Unix及苹果电脑 Mac OS X 操作系统的标准编译器。

GCC 原名为 GNU C 语言编译器,因为它原本只能处理 C语言。GCC 很快地扩展,变得可处理 C++。之后也变得可处理 Fortran、Pascal、Objective-C、Java, 以及 Ada与其他语言。

下面是gcc常用编译选项的说明:

-c选项:

把源程序编译为目标代码而不做链接工作,所以采用该选项的编译指令不会生成最终的可

执行程序,而是生成一个与源程序文件名相同的以.o为后缀的目标文件。

例:# gcc -c test.c

上述命令只生成test.o文件。

-S选项:

使用该选项只生成一个后缀名为.s的汇编语言文件。

-e选项:

只对进行预处理。

-v选项:

显示gcc版本。

例:# gcc -v

-x 选项:

指定编译语言。

例:# gcc -x c++ test.c

表示采用c++编译器来编译test.c程序。

-I 选项:

指定库及头文件路径。

一般情况下,Linux下的大多数函数都将头文件放到系统/usr/include目录下,而库文件

则放到/usr/lib目录下。但在有些情况下并不是这样的,在这些情况下,使用GCC编译时

必须指定所需要的头文件和库文件所在的路径。

例:# gcc -I /home/include -o test test.c

指定头文件路径是/home/include。

-L 选项:

指定所依赖库所在路径。

-static 选项:

强制程序连接静态库。

-o 选项:

指定生成的可执行程序的文件名。

例:# gcc -o test test.c

指定编译test.c文件,并生成可执行文件test。

-w 选项:

禁止输出警告信息。

-Werror 选项:

将所有警告转换为错误。

-Wall 选项:

显示所有的警告信息。

-O选项:

编译时使用选项-O可以告诉GCC同时减小代码的长度和执行时间,其效果等价于-O1。

-O2选项:

选项-O2告诉GCC除了完成所有-O1级别的优化之外,同时还要进行一些额外的调整工作,

如处理器指令调度。

-g选项:

生成调试信息。

-pg选项:

编译完成后,额外产生一个性能分析所需信息。

时间: 2024-10-25 07:42:19

gcc用于linux系统下编程的编译器选项说明的相关文章

GCC 4.6.1发布 linux系统下的编译器

GCC是一个用于linux系统下编程的编译器.是一套由 GNU 开发的编程语言编译器.它是一套  GNU编译器套装以 GPL 及 LGPL 许可证所发行的自由软件,也是 GNU计划的关键部分,亦是自由的类Unix及苹果电脑 Mac OS X 操作系统的标准编译器. GCC 原名为 GNU C 语言编译器,因为它原本只能处理 C语言.GCC 很快地扩展,变得可处理 C++.之后也变得可处理 Fortran.Pascal.Objective-C.Java, 以及 Ada与其他语言. GCC 4.6.

《操作系统真象还原》——0.14 为什么Linux系统下的应用程序不能在Windows系统下运行

0.14 为什么Linux系统下的应用程序不能在Windows系统下运行 其实,Windows下的程序也无法直接在Linux下运行. 对于这个问题,很多同学都会马上给出答案:格式不同.其实--答对啦,确实是格式不同,不过这只是一方面,还有另一方面,系统API不同,API即Application Programming Interface,应用程序编程接口. 先说说格式.其实格式也算是协议,就是在某个固定的位置有固定意义的数据.Linux下的可执行程序格式是elf,也就是 "Executable

在Linux系统下建立基于MPICH2的高性能分布式并行计算环境

MPICH2 提供了在现有的软硬件架构下对大数据进行并行.分布式处理的一个平台.本文将介绍如何在 Linux 系统下建立基于 MPICH2 的高性能分布式并行计算环境. MPI(Message Passing Interface)是由 MPI 委员会制定的一个消息传递标准,其中定义了一系列用于分布式环境中进行进程间通信的编程接口,目前有 MPI-1 和 MPI-2 两个版本.MPICH2 就是对 MPI 的一个具体实现,MPICH2 在保证高性能的同时保持了高度的可移植性,支持包括 AIX.Li

linux系统下如何使用assert函数

  linux系统下使用assert函数的方法. 步骤如下: assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: #include <assert.h> void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息, 然后通过调用 abort 来终止程序运行. 请看下面的程序清单badptr.c: #inc

Linux系统下NTP协议的超级配置攻略

  在Linux系统中,为了避免主机时间因为在长时间运行下所导致的时间偏差,进行时间同步(synchronize)的工作是非常必要的.Linux系统下,一般使用ntp服务来同步不同机器的时间.NTP 是网络时间协议(Network Time Protocol)的简称,干嘛用的呢?就是通过网络协议使计算机之间的时间同步化. 安装NTP包 检查是否安装了ntp相关包.如果没有安装ntp相关包,使用rpm或yum安装,安装也非常简单方便. 复制代码 代码如下: [root@localhost ~]#

Linux系统下使用Flacon导入CD音频文件中的歌曲

Linux系统下使用Flacon导入CD音频文件中的歌曲  Flacon 是一款 Qt 工具,用于从音频 CD 中提取个人曲目,基于在CUE文件中提供的信息提取如 WavPack. APE. FLAC. WAV 或 True Audio. 该应用程序提供了输出格式具体设置:你可以设置除 ReplayGain 以外的输出质量,压缩等,无论是每个专辑或音轨. Flacon 另外一个有用的功能就是标记导出的音轨文件,基于在CUE文件或手动提供的信息. 最新版本 Flacon 1.2.0 最近已经发布,

Linux系统下完成Windows的开发环境替换

当下有很多的人都在Windows下进行开发工作,在Windows下搭建相关的开发环境并且使用各种开发工具进行工作.其实更多的专业开发人员会选择Linux操作系统作为他们大的系统环境.理由很简单,Linux运行起来更快,更灵活,更加安全. Windows下的开发环境以及软件 Visual Studio 2010 Visual Studio 是微软公司推出的开发环境.是目前最流行的 Windows 平台应用程序开发环境.Visual Studio 可以用来创建 Windows 平台下的 Window

linux c-请教为何会有segmentation fault错误(linux系统下c)

问题描述 请教为何会有segmentation fault错误(linux系统下c) 程序是要实现弱口令扫描的原型实现 包括能扫描两个词条连在一起的口令,大写首字母的口令和后面带数字的口令 用命令gcc -o crack -lcrypt crack.c 编译通过,但运行时出现segmentation fault,求问错在哪里? 我只改了int dict_crack(FILE *dict_fp,struct userinfo_struct userinfo); 这个函数,其他的都是书上的. #in

在 Linux 系统下从 ISO 镜像中提取和复制文件的 3 种方法

假设你的 Linux 服务器上有一个超大的 ISO 镜像文件,你想要打开它,然后提取或者复制其中的一个文件.你会怎么做呢? 其实在 Linux 系统里,有很多方法来实现这个要求. 比如说,你可以使用传统的 mount 命令以只读方式把 ISO 镜像文件加载为 loop 设备,然后再把文件复制到另一个目录. 在 Linux 系统下提取 ISO 镜像文件 为了完成该测试,你得有一个 ISO 镜像文件(我使用 ubuntu-16.10-server-amd64.iso 系统镜像文件)以及用于挂载和提取