【makefile】makefile实际用法/写法

makefile:makefile通过编译和链接来运行程序;

陈浩老师有一篇博客在makefile原理这块写的很清楚:https://blog.csdn.net/haoel/article/details/2886

编译:源文件编译成中间代码文件,在Window下就是.obj文件,Unix下是.o文件,即Object File

链接:把大量的Object File合成执行文件

我有一篇博客很详细的写了代码的运行过程:https://blog.csdn.net/weixin_40740059/article/details/84075653

那么makefile到底是如何使用的呢?

【makefile】makefile实际用法/写法_第1张图片

图中是一个hello world代码,可以用 gcc main.c -o main来进行运行,生成可执行文件之后,用./main执行即可!

如果用makefile来进行运行,首先了解makefile书写的规则:

target: dependencies
    command

//target:目标文件,在上图中,也就是main

//!注意,冒号后要加空格

//dependencies:文件依赖,main的生成要依赖main.c

//command前面要加Tab键,不可以用空格!

//command:也就是我们用gcc编译时的命令
//    即:  gcc main.c -o main

【makefile】makefile实际用法/写法_第2张图片

首先创建一个makefile,然后来运行hello word 代码:

main: main.c
    gcc main.c -o main

【makefile】makefile实际用法/写法_第3张图片输出make后,会自动运行command命令,生成main的可执行文件

以上就是最基础一个makefile了,那么如果是一个大项目中包含.h,.c,.o要如何运行呢?

makefile:写一个求最小值的代码

创建find_min.h,find_min.c,main.c三个文件

【makefile】makefile实际用法/写法_第4张图片【makefile】makefile实际用法/写法_第5张图片【makefile】makefile实际用法/写法_第6张图片依次分别为find_min.h,find_min.c,main.c中的代码;

gcc main.c find_min.c -o main运行后得到main可执行文件,./main执行

【makefile】makefile实际用法/写法_第7张图片

用makefile来运行:

【makefile】makefile实际用法/写法_第8张图片

main: main.c find_min.o
    gcc main.c find_min.o -o main
//main的生成依赖main.c 和 find_min.o
//command中用main.c和find_min.o来生成main可执行文件

find_min.o: find_min.c
    gcc -c find_min.c
//在一开始的main中存在依赖关系的是find_min.o
//那么,如何生成find_min.o呢?command中用-c命令实现

运行make命令后,生成main的可执行文件,运行得出结果!

【makefile】makefile实际用法/写法_第9张图片

关于$(cc)和gcc区别:

    在这个例子中我们用的是gcc编译,如果要用g++编译的时候,一句句对gcc进行更换十分麻烦,所以选择用CC表示gcc

CC = gcc

$(CC)表示

【makefile】makefile实际用法/写法_第10张图片同样可以运行

关于make clean:

clean: 
    rm main
//同样要用Tab键

【makefile】makefile实际用法/写法_第11张图片

【makefile】makefile实际用法/写法_第12张图片完整运行后,输出make clean命令就可以删除main可执行文件

你可能感兴趣的:(Linux,makefile)