Makefile
关于makefile 我们有其他Lab4 makefile,练习2:用Make来代替Python
makefile是什么
c语言中的自动化构建工具
为什么使用makefile, gcc -o不好么
一个文件的时候可以使用gcc,当工程庞大的时候,还是用自动化的方法
原理简介
make读取makefile中定义的规则来进行项目的构建
注意这里必须是tab键
这个规则的意思是,若我们要生成hello这个可执行文件,会先检查main.c和message.c这两个文件是否有更新,如果有更新的话,它就会执行gcc开头的命令来compile这两个文件,重新生成hello可执行文件。
指clean是伪目标,执行make clean的时候不会把clean当作一个文件名称来执行
对应关系
通配符,代表所有的.o文件全部由.c文件生成。
三个参数
如果自动化脚本的名字不叫makefile ,则必须使用-f参数来调用
同时使用-n参数只会打印不会真正的执行。
-C(大写),最高层makefile的目录
CMAKE
首先安装好之后,创建(规定),一定要叫这个名字
CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(HelloWorld)
set(SOURCES main.c message.c)
add_executable(hello ${SOURCES})
-
cmake_minimum_required(VERSION 3.10)
:- 这一行指定了CMake的最低版本为3.10。意思是,项目在CMake版本3.10及以上的环境中才能正确构建。
-
project(HelloWorld)
:- 这一行定义了项目的名称为“HelloWorld”。这个名称在一些IDE中可能会被用作默认的项目名称。
-
set(SOURCES main.c message.c)
:- 这里定义了一个变量
SOURCES
,它包含两个源文件:main.c
和message.c
。这些文件将参与编译。
- 这里定义了一个变量
-
add_executable(hello ${SOURCES})
:- 这一行告诉CMake生成一个名为
hello
的可执行文件,并且使用${SOURCES}
变量中定义的源文件来生成该可执行文件,也就是main.c
和message.c
。
- 这一行告诉CMake生成一个名为
最后执行
cmake /path/to/project
/path/to/project是CMakeLists.txt的所在目录。
比如说cmake . 和cmake .. 分别是在本文件夹和上一级文件夹寻找CMakeLists.txt并且构建makefile