我对CMake已经万念俱灰了;它有很大的潜力,但是似乎无法找到基本系统工具(如make
),以便正常运行。
症状
在删除CMakeCache.txt文件后,CMake和CMake GUI会产生以下结果:
Processing top-level CMakelists.txt for project swb
CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles".
CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
我在这个问题中专注于找到make
,但是我也遇到了很多与CMake无法找到库和其他实用文件(链接器、nm、ar等)的相同问题。我在下面列出的技巧似乎可以让CMake在Linux下找到这些文件。
系统
Windows 7(64位);多个MinGW版本(32位/64位);Cmake 2.8.4;MinGW的非标准安装位置(c:/MinGW-32)。
我尝试过的事情
CMakelists.txt文件的前10行包含
SET(CMAKE_MAKE_PROGRAM c:/MinGW-32/bin/make.exe FORCE)
。先前的CMakelists.txt版本包含:
find_program(CMAKE_MAKE_PROGRAM NAMES make make.exe DOC "Find a suitable make program for building under Windows/MinGW" HINTS c:/MinGW-32/bin )
在运行 CMake 或 CMake-GUI 之前,在 cmd.exe 环境变量中设置
CMAKE_MAKE_PROGRAM
。使用“工具链”文件来标识
CMAKE_MAKE_PROGRAM
以及CMAKE_C_COMPILER
等。
有效的方法
如果我使用 GUI 填充 CMAKE_MAKE_PROGRAM
变量("C:/MinGW-32/bin/make.exe"),则 CMake 将成功地创建构建文件。
问题
我可以通过 GUI 标识 make 程序的名称使 CMake 工作。 如何使 CMake 在 Windows 7 (64-bit) / MinGW 组合中找到我的 make 程序而无需用户干预?