Makefile

link

关于makefile 我们有其他Lab4 makefile练习2:用Make来代替Python

makefile是什么

c语言中的自动化构建工具

为什么使用makefile, gcc -o不好么

一个文件的时候可以使用gcc,当工程庞大的时候,还是用自动化的方法

原理简介

make读取makefile中定义的规则来进行项目的构建

Pasted image 20240920151406.png

注意这里必须是tab键

Pasted image 20240920151546.png

这个规则的意思是,若我们要生成hello这个可执行文件,会先检查main.c和message.c这两个文件是否有更新,如果有更新的话,它就会执行gcc开头的命令来compile这两个文件,重新生成hello可执行文件

Pasted image 20240920165826.png
指clean是伪目标,执行make clean的时候不会把clean当作一个文件名称来执行

Pasted image 20240920170136.png

Pasted image 20240920170154.png

Pasted image 20240920170405.png
对应关系
Pasted image 20240920170535.png

通配符,代表所有的.o文件全部由.c文件生成。
Pasted image 20240920170619.png

三个参数

如果自动化脚本的名字不叫makefile ,则必须使用-f参数来调用

同时使用-n参数只会打印不会真正的执行。

-C(大写),最高层makefile的目录
Pasted image 20240920170909.png

CMAKE

首先安装好之后,创建(规定),一定要叫这个名字

CMakeLists.txt

Pasted image 20240920171257.png

cmake_minimum_required(VERSION 3.10)

project(HelloWorld)

set(SOURCES main.c message.c)

add_executable(hello ${SOURCES})

最后执行

cmake /path/to/project

/path/to/project是CMakeLists.txt的所在目录。

比如说cmake . 和cmake .. 分别是在本文件夹和上一级文件夹寻找CMakeLists.txt并且构建makefile