我试图让 CMake 构建到一个目录“build”中,如 project/build
,其中 CMakeLists.txt 位于 project/
.
我知道我可以做到:
mkdir build
cd build
cmake ../
但这很麻烦。我可以将它放在一个脚本中并调用它,但是为 CMake 提供不同的参数(如 -G "MSYS Makefiles")是不愉快的,或者我需要在每个平台上编辑这个文件。
最好我会做类似
SET(CMAKE_OUTPUT_DIR build)
的事情在主 CMakeLists.txt 中。请告诉我这是可能的,如果是这样,如何?或者其他一些源代码构建方法可以轻松指定不同的参数?
最佳答案
CMake 3.13 或更新版本支持 command line options -S
和 -B
分别指定源目录和二进制目录。
cmake -S . -B build -G "MSYS Makefiles"
这将寻找
CMakeLists.txt
在当前文件夹中创建一个 build
文件夹(如果尚不存在)。对于旧版本的 CMake,您可以使用未记录的 CMake 选项
-H
和 -B
在调用 cmake
时指定源和二进制目录:cmake -H. -Bbuild -G "MSYS Makefiles"
请注意,选项和目录路径之间不能有空格字符。
关于configuration - 在不包装脚本的情况下让 CMake 从源代码中构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11143062/