我和CMake已经到了极限;它有很大的潜力,但我似乎无法让它找到基本的系统工具(即make
)来发挥作用。
SYMPTOMS
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下运行时找到这些文件。
SYSTEM
Windows 7 (64-bit); multiple versions of MinGW (32-bit/64-bit); Cmake 2.8.4; NONSTANDARD install location for MinGW (c:/MinGW-32 ).
THINGS I HAVE TRIED
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_COMPLER
等。
ONE THING THAT HAS WORKED
如果我使用GUI填充CMake_MAKE_PROGRAM
变量(“C:\/MinGW-32/bin/MAKE.exe”),CMake将成功创建构建文件。
QUESTION(S)
如果我通过GUI识别make程序的名称,我就可以让CMake工作如何使用Windows7(64位)/MinGW组合,使CMake能够在没有用户干预的情况下找到我的make程序