GCC编译器
编译器简介
GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编译器。
支持多种语言,譬如C、C++、 Objective-C、 Fortran、Java、Ada以及Go等。
支持多个平台,是Linux系统最常用的编译器。
支持跨平台交叉编译(在本地编译的程序,可以运行在其他平台之上)。
编译过程
- 以C语言为例:
编译命令
编译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:若依赖文件不存在,则寻找是否有规则用来生成该依赖文件
-
makefile 原理
Fir:检查目标的所有依赖,任何一个依赖有更新时,就重新生成目标
Sec:目标文件比依赖文件时间晚,则需要更新
-
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 ❤️