`
lc9696lc
  • 浏览: 28813 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

linux下命令行下编译c程序

阅读更多

C 是所有版本的UNIX上的系统语言.
  
  C 在过去的二十年中有了很大的发展. 在80年代末期美国国家标准协会(American NationalStandards Institute)发布了一个被称为 ANSI C 的 C 语言标准.这更加保证了将来在不同平台上的 C 的一致性. 在80年代还出现了一种 C 的面向对象的扩展称为 C++.
  
  Linux 上可用的 C 编译器是 GNU C 编译器, 它建立在自由软件基金会的编程许可证的基础上, 因此可以自由发布. 你能在 Linux 的发行光盘上找到它.
  
  随 Slackware Linux 发行的 GNU C 编译器(GCC)是一个全功能的 ANSI C 兼容编译器. 如果你熟悉其他操作系统或硬件平台上的一种 C 编译器, 你将能很快地掌握 GCC. 这和java在命令行下
  
  编译也很类似我们将在下面介绍如何使用 GCC 和一些 GCC 编译器最常用的选项.
  
  格式 gcc [option] [sourcefilename]
  
  gcc的选项十分繁多,大约有上百中,不过平时常用的不是非常多,我们将要介绍一些常用的选项:
  
   
  如果你想指定生成目标文件的名字那么你可以加上 -o选项,命令如下:
  
  gcc -o hello hello.c
  
  gcc也允许你只编译源程序,这样可以只检查编译时刻的错误,有利也调试程序,用-c选项可以达到这个目的
  
  命令如下:
  
  gcc -c hello.c
  
  结果生成了一个中间代码hello.o文件
  
   编译选项告诉 GCC 在为 C 代码产生了汇编语言文件后停止编译. GCC 产生的汇编语言文件的缺省扩展名是 .s . -E 选项指示编译器仅对输入文件进行预处理. 当这个选项被使用时, 预处理器的输出被送到标准输出而不是储存在文件里.
  
  之后你可以对上述中间代码进行链接运行,使用命令:
  
  gcc -o hello.out hello.c   或者  gcc -o hello hello.o

     然后执行hello.out或hello运行程序 
  
  优 化 选 项
  
  当你用 GCC 编译 C 代码时, 它会试着用最少的时间完成编译并且使编译后的代码易于调试. 易于调试意味着编译后的代码与源代码有同样的执行次序, 编译后的代码没有经过优化.有很多选项可用于告诉 GCC 在耗费更多编译时间和牺牲易调试性的基础上产生更小更快的可执行文件. 这些选项中最典型的是-O 和 -O2 选项.
  
  -O 选项告诉 GCC 对源代码进行基本优化. 这些优化在大多数情况下都会使程序执行的更快. -O2 选项告诉 GCC 产生尽可能小和尽可能快的代码. -O2 选项将使编译的速度比使用 -O时慢. 但通常产生的代码执行速度会更快.
  
  GCC 支持数种调试和剖析选项. 在这些选项里你会最常用到的是 -g 和 -pg 选项.
  
   选项告诉 GCC 产生能被 GNU 调试器使用的调试信息以便调试你的程序. GCC 提供了一个很多其他 C 编译器里没有的特性, 在 GCC 里你能使 -g 和 -O (产生优化代码)联用. 这一点非常有用因为你能在与最终产品尽可能相近的情况下调试你的代码. 在你同时使用这两个选项时你必须清楚你所写的某些代码已经在优化时被 GCC 作了改动. 关于调试 C 程序的更多信息请看下一节"用 gdb 调试 C 程序" .
  
  如下命令 gcc -c -g hello.c
  
  pg 选项告诉 GCC 在你的程序里加入额外的代码, 执行时, 产生 gprof 用的剖析信息以显示你的程序的耗时情况.
  
  关于ggc的详细信息可用man gcc来查看

文章转载自网管之家:http://www.bitscn.com/os/linuxbc/200701/97701.html

分享到:
评论

相关推荐

    Linux下命令行实用程序(快速创建后缀为.h或.c文件框架)

    本主题聚焦于如何使用Linux命令行创建后缀为`.h`(头文件)和`.c`(源代码文件)的文件框架,这对于编程工作来说至关重要,特别是对于C语言或C++这样的编译型语言开发者而言。 首先,让我们了解`.h`和`.c`文件的...

    LINUX下命令行界面的C语言细胞游戏

    本文将深入探讨一个基于C语言在Linux CLI下的细胞游戏项目,这个项目已经在Ubuntu系统上成功编译并运行。通过学习这个项目,初学者可以提升对LINUX C编程的理解和实践能力。 细胞游戏,也称为生命游戏,是由数学家...

    五子棋在linux命令行模式下C语言实现

    这个项目对于学习C语言和理解Linux命令行操作来说是一个很好的实践,它能让你深入理解程序的运行机制,同时提供了一个可交互的娱乐应用。通过调试和修改代码,你可以进一步学习如何优化游戏逻辑,添加AI对手,或者...

    LINUX 下C语言使用、编译与调试实...

    Linux 下 C 语言使用、编译与调试 Linux 是一个开源的操作系统,广泛应用于服务器、嵌入式系统和个人电脑等领域。作为一个程序员,熟悉 Linux 下的 C 语言开发环境是非常重要的。本资源将引导读者学习如何使用 vi ...

    关于如何在DOS命令行模式下编译JAVA文件或工程的问题

    在DOS命令行模式下编译Java文件或工程是开发者必备的基本技能,尤其对于那些习惯于命令行操作或者需要在没有图形用户界面的环境中工作的人员来说。以下将详细阐述如何在DOS环境下编译单个Java文件以及整个Java工程。...

    Visual Studio 2010 编译C及一个完整的c程序(可在windows与linux(用gcc编译)平台下使用)

    标题中的“Visual Studio 2010 编译C及一个完整的c程序”指的是使用Microsoft Visual Studio 2010这个集成开发环境(IDE)来编写和编译C语言程序。Visual Studio 2010提供了强大的代码编辑器、调试工具和项目管理...

    librtmp库实测可在Linux下进行交叉编译

    标题"librtmp库实测可在Linux下进行交叉编译"指出,librtmp库,一个通常用于RTMP协议处理的开源库,能够在Linux环境中完成交叉编译的过程。这意味着开发者可以在Linux系统上构建适用于其他平台(如嵌入式设备或不同...

    在Linux下编译并运行C程序

    GCC主要用于编译C语言程序,而G++则专门用于编译C++程序。 要安装这些编译工具,可以使用Linux发行版自带的包管理器。例如,在基于Debian的发行版(如Ubuntu)中,可以通过以下命令安装: ```bash sudo apt-get ...

    linux下简易打字软件

    用C语言编辑,带C语言源程序,在CENTOS7.8下用GCC编译生成easytype可执行文件。 软件的文件使用tar进行了打包。因此,先下载压缩文件easytype.tar.gz, 接着在某一个目录下使用如下命令进行解压缩: tar -zxv -f ...

    linux命令行工具:删除指定目录下指定时间前的某些文件(含源代码)

    本文将深入探讨如何使用Linux命令行工具来删除指定目录下指定时间前的文件,以及如何结合C语言编写源代码实现这一功能,并将其自动化。首先,让我们了解基础的Linux命令。 1. **基础Linux命令**: - `ls`:列出...

    Linux下C语言使用、编译与调试实验1

    1. **Linux操作系统**:Linux是一种开源的操作系统,它提供了丰富的命令行工具和开发环境,包括用于编辑、编译和调试程序的工具。 2. **C语言**:C语言是一种基础且强大的编程语言,适用于系统编程、嵌入式开发、...

    基于c语言在linux下贪吃蛇项目

    本项目"基于C语言在Linux下贪吃蛇项目",旨在通过实际操作,帮助具有C语言基础和Linux基础的学习者提升技能,理解游戏开发的基本原理,特别是如何在命令行环境下构建一款简单的游戏——贪吃蛇。 首先,我们要了解...

    linux 单驱动程序动态编译环境配置

    本文将详细介绍如何在不编译整个Linux内核的情况下设置一个用于单个驱动程序开发的环境。 #### 1. 准备Linux内核源代码 **步骤1:下载Linux内核源代码** - 首先确保你的系统上安装了必要的工具,如`wget`或`curl`...

    Linux_下编译程序的三种方式

    在Linux环境下,编译程序通常有三种主要方式:直接使用GCC编译器、利用Make工具以及使用特定的构建系统如Autotools或CMake。下面将详细解释这三种方法。 ### 1. GCC编译器 GCC(GNU Compiler Collection)是Linux...

    在Linux下编译程序示例

    在Linux系统中,GCC通常通过命令行来使用,例如,编译一个名为"main.c"的C程序,你可以使用以下命令: ```bash gcc main.c -o main ``` 这里的`-o`选项用于指定输出的可执行文件名,即`main`。 如果项目包含多个...

    试谈Linux环境下程序编译.pptx

    Linux系统中,C语言程序的生命周期通常分为三个阶段:编写源代码、编译连接生成可执行文件、运行可执行文件。例如,一个简单的“Hello, World!”程序可以在Linux下通过以下步骤实现: 1. 使用文本编辑器(如vi)...

    linux命令行下的数码相框的简单实现

    标题“linux命令行下的数码相框的简单实现”暗示了我们将利用Linux的命令行工具和底层系统接口来创建一个能够在终端上显示图片的程序。 帧缓存(Frambuffer)是Linux内核提供的一种硬件抽象层,它允许开发者直接...

    linux程序编译调试介绍.pdf

    ### Linux程序编译调试知识点详解 #### 一、GCC(GNU Compiler Collection)概述 GCC,全称为GNU Compiler Collection,是一个广泛使用的开源编译器套件,支持多种编程语言,包括但不限于C、C++、Objective-C、...

    Linux下C程序-简易通讯录(已编译)

    在本资源中,我们有一个名为"Linux下C程序-简易通讯录(已编译)"的项目,这表明它是一个用C语言编写并在Linux环境下编译的通讯录应用程序。通讯录程序是计算机科学中常见的练习,它可以帮助用户存储、管理和查找...

Global site tag (gtag.js) - Google Analytics