`
lc9696lc
  • 浏览: 28233 次
  • 性别: 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命令行模式下C语言实现

    解压后,进入wuziqi目录,make编译就行,然后sudo执行

    LINUX下编译与调试

    LINUX下编译与调试 LINUX下编译与调试 1 1. gcc/g++编译器 1 2. makefile使用 2 2.1. 基本过程处理 2 2.2. 特殊处理与伪目标 3 2.3. 变量、函数与规则 5 3. 程序调试 8 3.1. gdb常用命令 8 3.2. gdb 应用举例 9 3.3...

    在Linux下编译C或C++程序的教程

    从开始学习C/C++我们都在是windows下,那么如何(怎样)在linux中编译C/C++代码?在linux终端下(命令行中)编译译C/C++代码? 在任何linux分支下编译C/C++代码,如 Ubuntu ,Red Hat, Fedora ,Debian 以及其他linux分支...

    Linux下串口读写例程

    先在命令行运行make编译,生成串口读写共享库,然后运行gcc -s -shared -fPIC test.c -lSetupSerialPort -o test.so,编译串口读写测试程序。 文件说明: SetupSerialPort.h //串口读写库头文件 SetupSerialPort.c /...

    SHA-3 加密算法C语言测试代码-(基于Keccak算法)

    1、在本文件夹目录下使用Linux命令行输入 make 进行编译链接生成可执行文件HashCalc 2. 命令行下输入 ./HashCalc 执行程序 3.命令行输入make clean可清理编译生成的文件 非Linux gcc编译器,不用makefile下 main.c...

    Linux串口开发及共享库调用例程

    先在命令行运行make编译,生成串口读写共享库,然后运行gcc -s -shared -fPIC test.c -lSetupSerialPort -o test.so,编译串口读写测试程序。 文件说明: SetupSerialPort.h //串口读写库头文件 SetupSerialPort.c /...

    UbuntuLinux下建立GCC环境

     在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 下面 我们以一个实例来说明如何使用gcc编译器. 假设我们有下面一个非常简单的源程序(hello.c): int main(int argc,char **argv...

    UNIX期末试卷

    (1) 假定所编辑的c程序为mytail.c,使用命令行方式将该源程序编译,目标执行程序为mytail。给出具体的编译实现过程。 (2) 假定日志文件为/usr/tmp/pppd.log,给出打印追加内容的方法。 3、设用户mali记录了在Linux...

    深入分析Linux下如何对C语言进行编程

    要编译这个程序,我们只要在命令行下执行: gcc -o hello hello.c gcc 编译器就会为我们生成一个hello的可执行文件.执行./hello就可以看到程序的输出结果了.命令行中 gcc表示我们是用gcc来编译我们的源程序,-o 选项...

    细说cc 编译命令

    多数UNIX平台都通过CC调用它们的C编译程序.除标准和CC以外,LINUX和FREEBSD还支持gcc. 基本的编译命令有以下几种: 1. -c 编译产生对象文件(*.obj)而不链接成可执行文件,当编译几个独立的模块,而待以后由链接程序把...

    linux c编程实战源码

    此外,要注意:有些程序编译时要带上命令行参数,比如编译多线程程序时,需带上-lpthread选项。对于此类程序编译时,书中都有对应的编译命令。对于一般的程序,只需使用如下命令:gcc -o test test.c。 2.由于格式...

    程序设计入门—C语言(完)-浙江大学-翁恺 视频.txt

    要想完整的学习C语言,还需要进一步学习本课程的后续课程——《C语言程序设计进阶》。 程序设计是实践性很强的课程,该课程的学习有其自身的特点,听不会,也看不会,只能练会。你必须通过大量的编程训练,在实践中...

    C C++ Linux多线程文件程序

    基于linux下的c/c++程序,多线程,断点续传功能没有实现, 可传输大于2G的文件。 设计思想:预先分配的N个缓冲区形成类似循环队列。 【1】预先分配N个缓冲区,多线程方式对缓冲区进行读写互斥,有类似生产者消费者的...

    C/C++-数据结构-电话号码查找系统-大学生课设-课程设计

    如需Windows的命令行编译运行(不推荐): 1. 安装Make工具、G++编译器及二者的环境变量 2. 更改源程序AddList.cpp 中的第29行为 system("cls") 3. 改变命令行编码为UTF-8(输入命令chcp 65001 程序使用编码为UTF...

    uDMX-linux:uDMX 界面的 Linux 命令行实用程序

    uDMX-linux 这是一个用于驱动界面的小型命令行实用程序。 它允许从命令行手动设置 DMX 值。 可以在 rc 文件中使用别名预定义夹具和值。 初始源代码来自 。 它以最少的调整编译,但生成的代码核心转储。 这是一个清理...

    各个平台C语言安装教程.zip

    教程总结: - 对于Linux平台,C语言的开发环境通常...这些教程提供了在Linux、Windows和Mac三个主要平台上安装C语言开发环境的基本步骤,帮助用户获取适用于其操作系统的C语言开发环境,并开始学习和编写C语言程序。

    cli:现代C ++中用于交互式命令行界面的库

    交互式命令行界面(Cisco风格)的仅跨平台标头的C ++ 14库 重要说明:重大的API更改cli 2.0版进行了重大更改,以添加更多功能。 要将您的应用程序迁移到新的cli版本,请参见此文件的“异步编程和调度程序”部分,...

    LinuxC编程一站式学习

    C语言是一种面向底层的编程语言,要写好C程序,必须对操作系统的工作原理非常清楚,因为操作系统也是用C写的,我们用C写应用程序直接使用操作系统提供的接口。既然你选择了看这本书,你一定了解:Linux是一种开源的...

    csharp:从命令行运行 c# 代码,如 python 或 javascript

    特征从命令行运行 c# 代码不需要分号加载外部程序集保存脚本单个可执行,开箱即用支持Windows,Linux,macOS和Android(安装说明将在底部) 按 T​​ab 键时自动完成内置功能帮助help是一个函数,它接受任何对象或并...

Global site tag (gtag.js) - Google Analytics