3

我是 VS 开发和 Cmake 的新手。我已经使用 CMake-GUI 生成了一个 Visual Studio 解决方案,并且能够成功构建它。

但是,我们的代码现在已经到了可以最终构建和链接到二进制文件的阶段。由于多人签入代码,我们希望每晚进行一次构建,因此我正在考虑为此编写一个批处理文件。

但是,我正在尝试从命令行调用 cmake 并遇到问题。

在 cmake-gui 中,为了进行配置,我提供了两个值 Path of my source code Path 将生成二进制文件的位置

但是,当我尝试通过命令行运行相同的(使用以下命令)

cmake -G "NMake Makefiles" -D CMAKE_SOURCE_DIR="D:\source_code" -D CMAKE_BINARY_DIR="D:\source_code\build\gen\host"

CMake 抛出错误:源目录“D:\”是文件而不是目录。

我也尝试了以下变体,但没有任何运气

cmake -G "NMake Makefiles" -D PROJECT_SOURCE_DIR="D:\source_code" -D PROJECT_BINARY_DIR="D:\source_code\build\gen

有人可以指导我正确的语法。

提前致谢

4

3 回答 3

3

您不应该尝试在命令行上设置任何这些变量。它们由 CMake 第一次读取 CMakeLists.txt 时自动设置。

相反,您应该从二进制目录中运行CMake 命令,并将路径传递到包含顶级 CMakeLists.txt 的目录。所以像:

cd D:\source_code\build\gen\host
cmake -G"NMake Makefiles" D:\source_code

顺便说一句,CMake 的命令行解析不是很好(例如,请参阅此答案)。我建议避免在-D参数后留下空格。

于 2013-10-24T13:19:06.350 回答
1

试试这个

删除 -D 和参数之间的空格

 cmake -G "NMake Makefiles" -DCMAKE_SOURCE_DIR="D:\source_code" -DCMAKE_BINARY_DIR="D:\source_code\build\gen\host"
于 2015-08-27T06:03:09.040 回答
0

在我的项目中,我们使用了 CMake-GUI。但我创建了一个 shell 脚本文件以避免重复填写条目。

示例要点如下。

cd <DIRECTORY_TO_BUILD> && <CMAKE-INSTALLATION-PATH>/bin/cmake.exe --build= "<BUILDSOURCE-PATH> -DQt5Widgets_DIR:PATH=C:/Qt/5.12.0/msvc2017/lib/cmake/Qt5Widgets

我从 cd 开始,否则脚本将创建运行脚本的构建文件夹。

于 2019-07-04T09:41:15.843 回答