Ich habe mit CMake das Ende meines Seils erreicht; es hat so viel Potenzial, aber ich kann es nicht dazu bringen, die grundlegenden Systemwerkzeuge (dh make
) zu finden, um zu funktionieren.
Symptome
CMake und die CMake-GUI erzeugen Folgendes (nach dem Löschen der Datei 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.
Ich konzentriere mich darauf, make
diese Frage zu finden. Ich hatte jedoch auch viele der gleichen Probleme, bei denen CMake keine Bibliotheken und andere Dienstprogrammdateien (Linker, nm, ar usw.) finden konnte. Die unten aufgeführten Techniken scheinen es CMake zu ermöglichen, diese Dateien unter Linux zu finden.
SYSTEM
Windows 7 (64-Bit); mehrere Versionen von MinGW (32-Bit / 64-Bit); Cmake 2.8.4; NICHT STANDARD-Installationsort für MinGW (c: / MinGW-32).
DINGE, DIE ICH VERSUCHT HABE
CMakelists.txt enthält
SET( CMAKE_MAKE_PROGRAM c:/MinGW-32/bin/make.exe FORCE )
in den ersten 10 Zeilen der Datei.Frühere Versionen von CMakelists.txt enthielten:
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 )
Legen Sie
CMAKE_MAKE_PROGRAM
eine Umgebungsvariable cmd.exe fest, bevor Sie CMake oder CMake-GUI ausführen.Verwendung einer "Toolchain" -Datei, die sowohl usw.
CMAKE_MAKE_PROGRAM
als auch identifiziertCMAKE_C_COMPILER
.
Eine Sache, die funktioniert hat
CMake erstellt erfolgreich Build-Dateien, CMAKE_MAKE_PROGRAM
wenn ich die Variable über die GUI auffülle ("C: /MinGW-32/bin/make.exe").
FRAGEN)
Ich kann CMake zum Laufen bringen, wenn ich den Namen des make-Programms über die GUI identifiziere. Wie kann CMake mein Make-Programm ohne Benutzereingriff mit der Windows 7 (64-Bit) / MinGW-Kombination finden?