ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Linux下C程序编写,以及Makefile的简单使用。

Linux下C程序编写,以及Makefile的简单使用。 一、项目文件创建使用mkdir test创建test文件夹。可以使用rmdir test 移除 文件夹在test目录下 使用touch 函数创建.c 和.h文件再使用编辑器对其进行正常开发同嵌入式keil一样编辑完成后进行保存。这里我以abs函数为例1创建代码文件命令touch main.c abs.c abs.h2对代码进行编写并进行保存二、编译文件三种方法方法一使用一天命令进行直接自动编译链接命令gcc main.c abs.c -o myprog一条命令同时编译main.c和abs.c链接成可执行文件myprog。适合文件较少的小项目。方法二分步编译# 1.分别编译成目标文件只编译不链接gcc -c main.c -o main.ogcc -c abs.c -o abs.o-c 表示只编译不链接生成.o目标文件最后把多个目标文件链接成最终程序。# 2.再链接成可执行文件gcc main.o abs.o -o myprog方法三使用Makefile管理创建Makefile文件并编写下面逐行解释这个 Makefile 的内容# 目标文件最终要生成的可执行程序 myprog: main.o abs.o # 规则用 gcc 把两个目标文件链接成可执行文件 myprog gcc main.o abs.o -o myprog 目标文件 main.o 依赖源文件 main.c main.o: main.c # 规则只编译不链接生成 main.o gcc -c main.c -o main.o 目标文件 abs.o 依赖源文件 abs.c abs.o: abs.c # 规则只编译不链接生成 abs.o gcc -c abs.c -o abs.o 伪目标 clean用于清理生成的文件 clean: # 规则删除编译生成的目标文件和可执行文件 rm -f main.o abs.o myprogMakefile 的核心概念说明目标target冒号左侧的名称如myprog、main.o、abs.o、clean表示要生成的东西或要执行的动作。a依赖prerequisites冒号右侧的文件如main.o abs.o表示生成目标前需要先准备好的文件。规则recipe目标下方以 Tab 键开头的命令如gcc main.o abs.o -o myprog表示如何从依赖生成目标。变量variable可以用CC gcc定义编译器、OBJS main.o abs.o定义目标文件列表再用$(CC)、$(OBJS)引用方便统一修改。在终端输入make时make 会读取 Makefile按依赖关系依次编译main.o、abs.o最后链接生成myprog。输入make clean时会执行rm -f main.o abs.o myprog把编译过程中生成的.o目标文件和可执行文件myprog全部清理掉方便重新编译。四、运行结果编译成功后执行./myprog输出结果
返回列表