【发布时间】:2016-11-01 14:08:53
【问题描述】:
我在低端上网本上安装了Visual C++ Build Tools 2015 | Standalone compiler, libraries and scripts。这是必要的,因为机器有一个小的 eMMC 焊接到板上,没有可用的实际空间。
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_COMPILER 和CMAKE_CXX_COMPILER。但我需要nmake,因为我找不到已经为 Windows 构建的独立 Make 程序。
-D 为 CMake 指定 nmake 的定义是什么?
【问题讨论】:
-
通常你会从开始菜单启动“Visual Studio ... 命令提示符”。这会设置几个环境变量来查找编译器、库、包含和 nmake。然后你可以运行“cmake -G”NMake Makefiles。这将使用微软工具。
-
我使用Ninja 作为我所有平台上所有项目的独立制作工具(只有一个可执行文件)。它快速且非常擅长依赖检查。 Ninja 必须在系统搜索路径中的某个位置,然后您可以调用
cmake.exe -G "Ninja" ..|ninja。 -
我相信目前仅使用 clang 是不可能的,因为它没有自己的链接器。因此,即使您使用 -D (CMAKE_MAKE_PROGRAM) (cmake.org/cmake/help/v3.0/manual/cmake-variables.7.html) 设置 NMake,它也很可能会失败。我相信您可以使用 (llvm.org/builds) 中的二进制文件并告诉 cmake 至少使用其中的编译器。我现在无法对此进行测试,因为我没有安装 Windows,但如果您不确定我在说什么,请告诉我,我会给您更多信息。
-
@Florian 我也用 ninja,你怎么告诉它在哪里寻找 cl 和链接?
-
@DavidMarquant - “你如何告诉它在哪里寻找 cl 和链接...”
CL使用CMAKE_C_COMPILER或CMAKE_CXX_COMPILER指定。我很快就会遇到另一个问题 - 如何指定LD和AR。
标签: windows visual-c++ cmake nmake