`

linux下使用gcc命令编译代码

阅读更多
linux下使用gcc命令编译代码
2008-11-13 00:30
初学时最好从命令行入手,这样可以熟悉从编写程序、编译、调试和执行的整个过程。编写程序可以用vi/vim(个人觉得vim比vi好用)或其它编辑器编写。
      编译则使用gcc命令。要往下学习首先就得熟悉gcc命令的用法。
      gcc命令提供了非常多的命令选项,但并不是所有都要熟悉,初学时掌握几个常用的就可以了,到后面再慢慢学习其它选项,免得因选项太多而打击了学习的信心。
一. 常用编译命令选项
假设源程序文件名为test.c
1. 无选项编译链接
用法:#gcc test.c
作用:将test.c预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认输出为a.out。编译成功后可以看到生成了一个a.out的文件。在命令行输入./a.out 执行程序。./表示在当前目录,a.out为可执行程序文件名。
2. 选项 -o
用法:#gcc test.c -o test
作用:将test.c预处理、汇编、编译并链接形成可执行文件test。-o选项用来指定输出文件的文件名。输入./test执行程序。
3. 选项 -E
用法:#gcc -E test.c -o test.i
作用:将test.c预处理输出test.i文件。
4. 选项 -S
用法:#gcc -S test.i
作用:将预处理输出文件test.i汇编成test.s文件。
5. 选项 -c
用法:#gcc -c test.s
作用:将汇编输出文件test.s编译输出test.o文件。
6. 无选项链接
用法:#gcc test.o -o test
作用:将编译输出文件test.o链接成最终可执行文件test。输入./test执行程序。
7. 选项-O
用法:#gcc -O1 test.c -o test
作用:使用编译优化级别1编译程序。级别为1~3,级别越大优化效果越好,但编译时间越长。输入./test执行程序。
8.编译使用C++ std库的程序
用法:#gcc test.cpp -o test -lstdc++
作用:将test.cpp编译链接成test可执行文件。-lstdc++指定链接std c++库。
二. 多源文件的编译方法
如果有多个源文件,基本上有两种编译方法:
[假设有两个源文件为test.c和testfun.c]
1. 多个文件一起编译
用法:#gcc testfun.c test.c -o test
作用:将testfun.c和test.c分别编译后链接成test可执行文件。
2. 分别编译各个源文件,之后对编译后输出的目标文件链接。
用法:
#gcc -c testfun.c //将testfun.c编译成testfun.o
#gcc -c test.c    //将test.c编译成test.o
#gcc -o testfun.o test.o -o test //将testfun.o和test.o链接成test
    以上两种方法相比较,第一中方法编译时需要所有文件重新编译,而第二种方法可以只重新编译修改的文件,未修改的文件不用重新编译。
分享到:
评论

相关推荐

    如何在Linux下用gcc编译c程序

    对于初学者或专业人士而言,掌握如何在Linux环境下使用gcc编译C程序是至关重要的。下面我们将详细探讨这个过程及其相关知识点。 首先,要开始编译C程序,你需要确保你的Linux系统已经安装了GCC。你可以通过运行`gcc...

    linux下GCC编译C程序

    1. **编译单个源文件**:创建一个简单的C程序,例如经典的"Hello World"程序,然后使用`gcc`命令编译。例如: ```bash gcc -o hello hello.c ``` 这会生成名为`hello`的可执行文件。默认情况下,不指定输出...

    linux中gcc4.8.5,下载解压即可直接使用,linux系统GCC编译

    Linux中的GCC(GNU Compiler Collection)是开源的、跨平台的编译器套件,用于将C、C++、Fortran、Objective-C等编程语言的源代码编译为可执行文件。GCC 4.8.5是该系列的一个稳定版本,发布于2015年,虽然不是最新版...

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

    描述中提到的“可在windows与linux(用gcc编译)平台下使用”意味着这个程序不仅可以在Windows上通过Visual Studio 2010编译运行,还可以在Linux系统中使用GCC(GNU Compiler Collection)进行编译和执行。GCC是开源...

    arm-linux-gcc交叉编译环境安装.pdf

    例如,用户可以使用 arm-linux-gcc 命令来编译一个 C 语言程序。 Arm-Linux-GCC 交叉编译环境安装的优点是可以让开发者在 Linux 系统中编译 Arm 架构的程序,从而实现跨平台编译的功能。 Arm-Linux-GCC 交叉编译...

    sqlite qt 实例,linux下ARMGCC4.4.1编译过

    7. **编译Qt**:使用`qmake`和`make`命令编译Qt。 8. **创建Qt应用**:编写一个简单的Qt应用程序,该程序使用QSqlDatabase与SQLite交互,例如创建表、插入数据、查询数据等。 9. **编译Qt应用**:使用交叉编译的Qt...

    Linux 的gcc命令

    GCC 命令是 Linux 下的一个强大命令,能够完成从源代码到可执行文件的整个编译过程。 GCC 命令的功能可以分为四个步骤:预处理、编译、汇编和链接。预处理阶段,GCC 会对源代码进行预处理,展开宏定义、include ...

    linux离线安装gcc教程

    在Linux系统中,GCC(GNU Compiler Collection)是一个关键的开源编译器套件,用于将源代码编译成可执行程序。GCC支持多种编程语言,包括C、C++、Fortran、Objective-C等。在没有互联网连接的情况下,离线安装GCC...

    Linux实验 六 GCC程序编译

    - **编译**:使用`gcc -S hello.i -o hello.s`命令,将预处理后的文件编译成汇编代码`hello.s`。 - **汇编**:使用`gcc -c hello.s -o hello.o`命令,将汇编代码汇编为目标文件`hello.o`。 - **链接**:使用`gcc ...

    mips-linux-gcc大端

    3. **编译**:使用mips-linux-gcc命令进行编译,通常会包含类似`-march=mips32`和`-EB`这样的选项,`-EB`用于指定大端模式。 4. **链接**:将编译后的对象文件链接成可执行文件,可能还需要指定适当的链接器选项和库...

    交叉编译环境的建立arm-linux-gcc-4.3.2的安装

    这条命令将会把`arm-linux-gcc-4.3.2.tgz`解压到`/usr/local/`目录下。需要注意的是,解压的过程可能需要一定的时间。 #### 四、配置环境变量 为了能够顺利地使用arm-linux-gcc-4.3.2进行交叉编译,我们需要将它...

    Linux下用GCC运行C语言源文件的实例

    对于C语言爱好者来说,掌握如何在Linux下使用GCC编译和运行C语言源文件是至关重要的。下面我们将详细探讨这个过程,以及相关的一些知识点。 首先,安装GCC。在大多数Linux发行版中,GCC可能已经预装,如果没有,...

    linux下GCC的使用简介

    ### Linux 下 GCC 的使用简介 #### 一、GCC 概述 GCC(GNU Compiler Collection),作为 GNU 工具链中的核心组成部分,是一个广泛使用的开源编译器套件。它不仅支持 C 语言,还涵盖了 C++、ADA、Objective-C、Java...

    内网环境下Linux环境gcc gcc-c++编译器安装所需依赖

    在Linux上,特别是对于服务器环境,比如安装Nginx这样的Web服务器,可能需要自编译源代码,这时就需要GCC和G++来完成编译过程。 Nginx是一款高性能、轻量级的HTTP和反向代理服务器,广泛应用于互联网行业。在Linux...

    UbuntuLinux下建立GCC环境

    在Linux下,使用GCC编译C语言源程序非常简单。以一个简单的`hello.c`程序为例: ```c int main(int argc, char **argv) { printf("Hello Linux\n"); } ``` 编译这个程序,只需在终端运行: ``` gcc -o ...

    gcc、gcc+编译离线文件

    3. 编译源代码:使用上述的GCC编译命令,确保使用静态链接选项(如`-static`),这样生成的可执行文件就不会依赖于系统的动态库。 4. 验证运行:运行编译后的程序,确认所有依赖都已解决,程序能够正常运行。 **四...

    gcc交叉编译环境搭建

    下载完毕后,使用适当的解压工具打开压缩包,并将解压后得到的文件夹(通常名为arm-linux-gcc-3.4.1)复制到/usr/local/目录下。这个目录是系统级的路径,通常用于存放各种系统级的工具。 接下来,我们需要配置环境...

    Linux实验十一 arm-Linux交叉编译环境搭建

    1. **交叉编译的基本概念**:交叉编译是指在一个平台上编译代码,使其能够在另一个平台上运行的过程。在嵌入式系统开发中,由于目标平台资源有限,通常在性能更强大的主机平台上完成编译工作。 2. **GCC(GNU ...

    linux操作系统gcc编译器

    在Linux环境下,使用GCC编译器的基本命令格式为: ``` gcc [选项] 源文件名.c [-o 输出文件名] ``` 其中,常见的选项有: - `-Wall`:开启所有警告。 - `-g`:生成调试信息,便于使用GDB等调试工具。 - `-O`或`-O2`...

    GCC编译动态和静态链接库.pdf

    GCC 编译动态和静态链接库是 Linux 应用开发中的一个重要组件,对于嵌入式 Linux 应用开发来说尤为重要。本文将详细介绍如何在 Linux 中创建静态库和动态库,以及使用它们。 静态库 静态库是指在程序编译时被连接...

Global site tag (gtag.js) - Google Analytics