Linux(七)GCC编译

GCC编译器

编译器简介

GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编译器。

支持多种语言,譬如C、C++、 Objective-C、 Fortran、Java、Ada以及Go等。

支持多个平台,是Linux系统最常用的编译器。

支持跨平台交叉编译(在本地编译的程序,可以运行在其他平台之上)。

编译过程

Linux(七)GCC编译

  • 以C语言为例:

Linux(七)GCC编译

编译命令

Linux(七)GCC编译

编译C程序

  • 准备测试程序

{% tabs test %}

Linux上编辑代码

Step1:vi/vim编译器

Step2:Sublime Text

  • 使用vi编译器演示

    step1:在个人目录下创建一个hello.c文件

    step2:在代码目录下打开终端工具,执行 vim hello.c 命令打开文件

    step3:编辑代码,保存退出

Win上编辑代码

譬如:Win上编译代码后传输至Linux系统中:

Step1:使用VS或其他编译器编写代码

Step2:使用SSH或WinScp工具传输代码到Linux中

{% endtabs %}

  • 编译运行程序

    Step1:在程序所在的目录打开终端工具

    Step2:执行命令 gcc -o hello hello.c 编译链接生成可执行的文件 hello

    Step3:执行命令 ./hello 运行程序

 

{% note info simple %}

大型的C语言程序,不只一个文件,如果要编译多个文件,可以将多个文件编译为一个可执行文件:

gcc -o out src1.c src2.c src3.c

gcc的编译选项多达100多个,可以执行命令 man gcc 查看命令帮助。

{% endnote %}

C程序调试

  • 调试工具gdb

    gdb是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具,对于一名Linux下工作的C/C++程序员,gdb是必不可少的工具。

    (初步)调试步骤:

    Step1:成调试信息,编译时必须加上生成调试信息,编译时必须加上-gg选项,将调试信息增加到可执行文件中

    gcc -g test.c -o test

    Step2:启动gdb,进入调试模式

    gdb test(可执行文件)

    Step3:输入start或者s,从程序入口开始调试

    (gdb)start

    Step4:输入next或者n,进行单步调试

    (gdb)next

  • gdb调试命令说明

调试命令 命令说明
gdb filename 启动调试
break/b line/ 函数名增加断点在某一行或者某一个函数
run/r [参数] 启动程序
next/n 执行程序的下一行代码(跨过函数)
step 单步调试
print 表达式显示表达式的值
list 显示附近的代码
continue/c 继续执行程序
quit/q 退出调试

Makefile

何为makefile?

它定义了一套规则,决定了哪些文件要先编译,哪些文件后编译,哪些文件要重新编译。有了makefile,整个工程只要一个 make 命令就可以完成编译、链接,甚至更复杂的功能。

  • makefile 特点

    Fir:管理代码的编译——决定该编译什么文件,编译顺序,以及是否需要重新编译

    Sec:节省编译时间——如果文件有更改,只需重新编译此文件即可,无需重新编译整个工程

    Thi:一劳永逸——makefile 通常只需编写一次,后期就不用过多更改

  • makefile 规则

    makefile的基本格式为:目标、依赖、(tab)、规则

    说明:

    目标——需要生成的目标文件

    依赖——生成该目标所需的一些文件

    规则——由依赖文件生成目标文件的手段

    tab ——每条规则必须以 tab 开头,不能使用空格

  • makefile 原理

    目标的生成:

    Fir:检查规则中的依赖文件是否存在

    Sec:若依赖文件不存在,则寻找是否有规则用来生成该依赖文件

Linux(七)GCC编译

Linux(七)GCC编译

  • makefile 原理

    Fir:检查目标的所有依赖,任何一个依赖有更新时,就重新生成目标

    Sec:目标文件比依赖文件时间晚,则需要更新

Linux(七)GCC编译

  • makefile 运行

    Fir:一般来说将 Makefile 命名为 Makefile 或 makefile 都可以,推荐采用 Makefile的名字,因为这样可以将 Makefile 居前显示(可执行文件)程序源文件命名都是小写)。这种情况下编译 直接执行make命令即可。

    make

    Sec:如果将 Makefile 命为 其它名 字,比如 Makefile_demo,也是允许的,但使用的时候应该采用以下 方式:

    make -f Makefile_demo

    Thi:清除编译过程中产生的中间文件(可执行文件).o文件)及最终目标文件

    make clean

软件安装

软件安装方法:

rpm 安装: rpm -ivh 软件包名

yum安装 : yum install 软件名

源码安装,一般步骤:

Step1:解压缩

tar -g zxvf 源码包.tar.gz

Step2:安装依赖包和编译工具(可选)

yum install gcc(如有图形界面还需要安装 ncurses-devel)

Step3:检测(可选,如果软件的源码包中无configure时,可省略此步骤)

./configure

Step4:编译(前提,软件的源码包中有makefile文件)

make

Step5:安装

make install

Java程序

Java程序编译运行与Windows下完全相同

编译:javac

执行:java

 

{% note info simple %}

建议安装 JDK-14,无需配置环境变量

{% endnote %}

 

 


❤️ END ❤️
上一篇:微信小程序获取手机号


下一篇:HDU 6438 Buy and Resell