CLion调用CMake时使用的命令行(进程和参数)到底是什么?我正在尝试使用相同的目录来使用终端进行手动构建以及使用IDE进行构建,但是似乎其中一个与另一个的交互很差。
我仅使用CLion来处理CMake配置没有问题(以避免轻微的配置不匹配触发另一个CMake执行),但似乎甚至在命令行触发器make
上使用cmake
的标准构建再次。
我已经看到CLion将其打印为对CMake的“调用”,但是我看不到它引用了当前工作目录的位置。而且由于在GUI上,您可以配置相对于项目根文件夹(位于CMakeLists.txt
的路径)而不是相对于构建文件夹的路径。我希望这个细节是罪魁祸首。
通常在命令行中我会这样:
$ cd project
$ mkdir -p builds/debug
$ cd builds/debug
$ cmake $MY_CMAKE_OPTS -DSPECIAL_FILE=../../file.ext ../..
不过,在CLion上,我必须像这样配置它:
CMake options: $MY_CMAKE_OPTS -DSPECIAL_FILE=file.ext
Generation path: builds/debug
The rest I've used the default
此特殊文件在配置阶段使用,因此无法使用相对于项目根目录的路径或绝对路径。
答案 0 :(得分:0)
View - Tool Windows - CMake
时,会在CMake视图中显示配置步骤命令行。该视图没有默认的热键。
示例:/Users/vic/bin/cmake_ninja_wrapper.py -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" /Users/user/src/helloworld
。
根据配置,当前目录可以是PROJECT_SOURCE_DIR/cmake-build-debug
(为我生成构建文件的位置),PROJECT_SOURCE_DIR/cmake-build-release
或其他。
Messages - Build
视图中显示构建步骤命令行。当您从“构建”菜单调用构建时,它将打开。我认为当前目录并不重要,因为所有生成文件都已生成。
示例:/Applications/CLion.app/Contents/bin/cmake/mac/bin/cmake --build /Users/user/src/helloworld/cmake-build-debug --target helloworld -- -j 6
然后可以在Mac上通过Cmd-0
或通过菜单View -
Tool Windows - Messages
打开视图。
要使用相对路径,可以在CMakeLists.txt
中引用PROJECT_SOURCE_DIR变量。