将cmake更改为二进制目录

pal*_*ogt 3 cmake

假设我有一个项目,我已经在.build目录中运行CMake:

project/
    .build/
    .src
Run Code Online (Sandbox Code Playgroud)

目前我必须这样做来运行构建:

cd .build
make
Run Code Online (Sandbox Code Playgroud)

我希望能够从我的项目的根目录运行make,也许是

make -f ./build/Makefile
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我得到这样的错误

make[1]: CMakeFiles/Makefile2: No such file or directory
make[1]: *** No rule to make target `CMakeFiles/Makefile2'.  Stop.
make: *** [all] Error 2
Run Code Online (Sandbox Code Playgroud)

这是因为CMake生成的Makefile假定其工作目录与它所在的位置(.build)相同.

是否可以让CMake生成一个makefile,使makefile将工作目录更改为它所在的位置?

Yup*_*ing 7

你只需要告诉make你的基目录在哪里,不需要改变cmake.

make -C your_build_directory
Run Code Online (Sandbox Code Playgroud)