我已经通过CMake达到了尽头。它具有巨大的潜力,但是我似乎无法使其找到运行所需的基本系统工具(即make
)。
症状
CMake和CMake GUI生成以下内容(删除CMakeCache.txt文件之后):
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的NONSTANDARD安装位置(c:/ MinGW-32)。
我尝试过的东西
CMakelists.txt包含
SET( CMAKE_MAKE_PROGRAM c:/MinGW-32/bin/make.exe FORCE )
在文件的前10行中。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_MAKE_PROGRAM
在运行CMake或CMake-GUI之前,请在cmd.exe环境变量中进行设置。使用“工具链”文件来标识
CMAKE_MAKE_PROGRAM
以及CMAKE_C_COMPILER
,等等。
一件有效的事
如果我使用GUI填充CMAKE_MAKE_PROGRAM
变量(“ C:/MinGW-32/bin/make.exe”),CMake将成功创建构建文件。
问题
如果通过GUI识别make程序的名称,则可以使CMake正常工作。如何使CMake无需用户干预Windows 7(64位)/ MinGW组合即可找到我的make程序?