Ubuntu入门:GCC编译器与Makefile详解及Shell脚本基础
64 浏览量
更新于2024-08-29
收藏 483KB PDF 举报
"Ubuntu入门教程,涉及GCC编译器的使用,Makefile的基础知识以及Shell脚本的编写。"
本文将详细介绍Ubuntu系统中进行软件开发的一些基础工具和概念,包括GCC编译器的配置与使用,Makefile的编写,以及Shell脚本的基础知识。
1.GCC编译器
GCC(GNU Compiler Collection)是GNU项目的一部分,它是一套广泛用于C、C++、Objective-C、Fortran、Ada、Go和D等多种编程语言的编译器。在Ubuntu系统中,GCC通常预装,但你可以通过`gcc -v`命令来查看其版本信息。
1.1.VIM设置
VIM是一个强大的文本编辑器,经常被用来编写源代码。为了便于代码阅读和维护,可以调整VIM的设置使其在编辑时将Tab键映射为4个空格,同时显示行号。打开`/etc/vim/vimrc`文件,添加以下行:
```
set ts=4
set nu
```
然后按下"esc",输入":wq"保存并退出。
1.2.编译代码
使用GCC编译C程序的基本命令格式是`gcc xxx.c -o xxx`,这将把`xxx.c`编译并链接成名为`xxx`的可执行文件。编译过程包括预处理、编译、汇编和链接四个步骤。预处理处理头文件、宏和条件编译,编译阶段将预处理后的代码转换为汇编代码,汇编阶段将汇编代码转换为目标代码,最后链接阶段将所有目标代码合并成一个可执行文件,同时处理库的引用。
2.Makefile基础
Makefile是构建工程的重要工具,它定义了如何编译、链接和执行项目中的各个源文件。下面是一个简单的Makefile示例,涉及的实验包含5个文件:main.c、input.c、calcu.c、input.h、calcu.h。
```makefile
CC = gcc
CFLAGS = -Wall
OBJ = main.o input.o calcu.o
all: my_program
my_program: $(OBJ)
$(CC) $(CFLAGS) -o my_program $(OBJ)
%.o: %.c
$(CC) $(CFLAGS) -c $<
clean:
rm -f *.o my_program
```
这个Makefile定义了目标`my_program`,并指定了依赖的源文件对象。`all`是默认目标,当运行`make`时会执行该规则。`%.o: %.c`是模式规则,表示对于每一个`.c`文件,都需要先编译成相应的`.o`目标文件。`clean`规则用于清理编译产生的中间文件。
2.2. Makefile概念和基本操作步骤
- 目标(Target):Makefile中的第一条命令执行的目标,如`my_program`。
- 靠谱(Prerequisite):目标依赖的文件,如`$(OBJ)`。
- 规则(Rule):描述如何从靠谱创建目标的命令。
2.3. Makefile规则格式
规则通常由目标、靠谱和命令组成,命令前必须有tab键。
2.4. Makefile变量
变量使得Makefile更易读写,如`CC`和`CFLAGS`。
2.5. Makefile模式规则&自动化变量
模式规则如`%.o: %.c`,允许批量处理类似的规则。自动化变量如`$@`代表目标,`$<`代表第一个靠谱。
2.6. Makefile条件判断
Makefile支持条件语句,可以根据不同情况执行不同的规则。
3.Shell编程
3.1. Shell脚本基础
Shell脚本是Linux/Unix系统的批处理脚本,通常用于自动化日常任务。它基于Bash或其他Shell解释器执行。
3.2. Shell脚本条件判断&函数&循环
Shell脚本支持条件判断(if-else结构)、函数定义和循环结构(如for、while),用于实现复杂的逻辑控制。
总结,了解并熟练运用GCC、Makefile和Shell是Linux环境下进行软件开发的基础。掌握这些工具,能够有效地提高代码的编译、构建和自动化管理效率。
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情