告诉 CMake 在哪里可以找到 nmake 的 -D 定义是什么?

What is the -D define to tell CMake where to find nmake?

我在一台低端上网本上安装了 Visual C++ Build Tools 2015 | Standalone compiler, libraries and scripts。这是必要的,因为机器有一个小的 eMMC 焊接到板上,没有真正的 space 可用。

nmake 安装在 %PROGRAM FILES%\Microsoft Visual Studio 14.0\VC\bin。但是,CMake 在尝试生成 Makefile 时找不到它。我想使用 -D 来告诉 CMake makefile 程序是什么,但是我无法找到 list of -D defines for CMake.

为了完整起见,我尽量避免使用其他 Microsoft 工具。我在 C:\LLVM\bin 有 LLVM 构建工具,所以我设置 CMAKE_C_COMPILERCMAKE_CXX_COMPILER。但是我需要 nmake,因为我找不到已经构建的 Windows 的独立 Make 程序。

为 CMake 指定 nmake 的 -D 定义是什么?

CMAKE_MAKE_PROGRAM。见 the documentation:

您要查找的变量是CMAKE_MAKE_PROGRAM

如果你试图设置这个变量加上CMAKE_C_COMPILERCMAKE_LINKER_EXE等,这仍然会失败,因为cl.exe和link.exe需要一些环境变量来被设置。这些可以通过使用 "Visual Studio * Command Prompt" 来设置(这使用 Visual Studio 安装目录中的 vcvars.bat)。

要使用 Clang,您可以从 http://llvm.org/builds/ 安装 Clang 工具集。然后你可以在工具链文件中指定CMAKE_GENERATOR_TOOLSET

让我知道你的结果如何。