cmake是什么做

What does cmake .. do?

本文关键字:是什么 cmake      更新时间:2023-10-16

我得到了Box2D项目源代码,并想编译它的测试台部分。项目文件夹包含如下文件夹:freeglu-guli-testbed(一个演示)helloword(一个示例)Box2D构建CMakeFiles

在所有不同的文件夹中都有许多CMakeLists.txt。我想我应该cmake所有这些文件,这样make文件就可以在所有需要的地方创建。我读了这个(作为做我想做的事的说明):

wget http://box2d.googlecode.com/files/Box2D_v2.2.1.zip
unzip Box2D_v2.2.1.zip
cd Box2D_v2.2.1/Build
cmake ..
make

cmake是什么。。做生成文件夹中没有CMakeLists.txt。

cmake是一个Makefile生成器。

当您调用cmake [path]时,您要求它按照[path]/CMakeLists.txt 中给出的说明在当前目录中生成Makefile

通常cmake在工作时会输出一些消息,在没有错误的情况下完成后,您可以键入"make"来执行新创建的Makefile。

CMakeLists.txt文件可以引用子目录中的其他CMakeLists.txt文件,因此您通常只对top目录的CMakeLists.txt感兴趣,而对其他文件不感兴趣。

使用一个空的"构建"目录是一种称为"源代码外构建"的技术,在这种技术中,所有生成的文件(.o、可执行文件、Makefile、.enything)都是在单独的"编译"目录中生成的,而不是与源文件混合。如果要清除所有内容,可以删除生成目录的所有内容。

事实上,你可以把你的"构建"目录放在任何地方,只要你给cmake顶部CMakeLists.txt的正确路径。你甚至可以有几个构建目录。如果您同时需要几个不同的构建(具有不同的选项、不同版本的gcc等),这是非常有用的

在旧程序中,您也可以生成Makefile,但使用./configure(这被称为自动工具。您可能已经遇到过了)。cmake被认为是汽车工具的继承者。

cmake ..在当前目录中生成makefile,使用../CMakeLists.txt文件作为起点make命令,在此之后执行,使用生成的makefile作为输入构建程序。这样可以方便地将源代码和生成结果保存在不同的文件夹中。一般语法为:cmake-source-dir(当然,还有很多其他开关)。

好吧,..是父文件夹的简写,所以它可能会根据在Box2D_v2.2.1中找到的任何内容进行操作。