cmake、makefile、cmakelist.txt

一:cmake

cmake是一个跨平台的编译工具,可以用简单的语言描述所有平台的编译过程。如果我们正常想要编译一个project是怎样做的呢?

g++ -o pojname Main.cpp Test.cpp

如果文件数目特别多的时候,每次编译我们都要输入很长的一段。但是如果我们把文件之间的关系记录到一个单独的文件里面,编译的时候直接根据这个文件生成相应的代码,那我们就不需要输入像上面那样很长的指令了。

还记得上面说的吗,cmake是一个跨平台的编译工具。它允许开发者编写一种平台无关的 CMakeList.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件。

二:makefile

Makefile是linux下面的文件
通常依赖于你当前的编译平台,而且编写makefile的工作量比较大,解决依赖关系时也容易出错。因此,对于大多数项目,应当考虑使用更自动化一些的 cmake或者autotools来生成makefile,而不是上来就动手编写。

三:cmakelist.txt

允许开发者编写的一种平台无关的文件来定制整个编译的流程。

四:怎样自己写makefile

https://www.ruanyifeng.com/blog/2015/02/make.html

1. 命令
temp1.txt : temp2.txt temp3.txt temp4.txt
    cp temp2.txt  temp1.txt 

上面这个命令就是temp1.txt的创建需要temp2.txt temp3.txt temp4.txt都存在,并且创建的方式是temp2.txt复制。

2. 多条命令必须加\ 或者采用其他方法(看上面连接)

不然两条命令会在两个shell进程中执行。

var-kept:
    export foo=bar; \
    echo "foo=[$$foo]"
3. 屏蔽命令输出 用 @
test:
    @mkdir temp 
#如果没有@的时候,执行make test,shell会显示mkdir  temp。通过@可以对真正执行命令进行屏蔽 。

你可能感兴趣的:(cmake、makefile、cmakelist.txt)