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?
Aktivieren Sie in der GUI das Kontrollkästchen "Erweitert". Es sollte nun mehrere Einträge unten zeigen. Benennen Sie Ihre Datei mingw32-make.exe in make.exe um (Sie können einfach eine Kopie erstellen) und setzen Sie die Dateipfadvariable CMAKE_MAKE_PROGRAM auf den Speicherort dieser Datei.
quelle
CMAKE_MAKE_PROGRAM
, Typ -FILEPATH
, Wert -X:/Path/To/Make
. Oder über die Befehlszeile durch Hinzufügen-DCMAKE_MAKE_PROGRAM=X:/Path/To/Make
. Hoffe es hilftIch habe gerade das gleiche Problem gelöst. Ich hatte MinGW mit GCC und G ++ installiert, aber nicht
make
. Dieser Befehl hat mir geholfen:Löschen Sie nach dem Ausführen den CMake-Cache (löschen Sie die
CMakeCache.txt
Datei im Arbeitsverzeichnis des CMake) und führen Sie CMake erneut aus.quelle
Frühere Antworten schlugen vor, CMake (neu) zu installieren oder zu konfigurieren. Sie alle halfen nicht.
Früher verwendete MinGWs Zusammenstellung von Make den Dateinamen
mingw32-make.exe
und jetzt ist es somake.exe
. Die meisten vorgeschlagenen Möglichkeiten, CMake für die Verwendung der anderen Datei zu konfigurieren, funktionieren nicht.Kopieren Sie einfach die Kopie
make.exe
und benennen Sie sie ummingw32-make.exe
.quelle
Ich habe versucht, die fehlenden Pakete zu installieren. Das Installieren der Toolchain und das Neustarten von CLion haben in meinem Fall alles gelöst:
quelle
Auf Ubuntu habe ich den Compiler vermisst. Behoben mit:
quelle
Vor kurzem hatte ich das gleiche Problem (Kompilieren von OpenCV mit CMake und Qt / MinGW auf WIN764)
Und ich denke, ich löse dies einschließlich meiner Umgebungsvariablen PATH (bis
Control Panel\All Control Panel Items\System\Advanced Sytem Settings
) mit% MINGW_DIR% \ bin und% CMAKE_DIR% / binAußerdem habe ich cmake2.8 in einem einfachen Verzeichnis installiert (ohne Leerzeichen).
quelle
Ich hatte genau das gleiche Problem, als ich versuchte, OpenCV mit Qt Creator (MinGW) zu kompilieren, um die statischen Bibliotheksdateien .a zu erstellen.
Für diejenigen, die Qt 5.2.1 für Windows 32-Bit (MinGW 4.8, OpenGL, 634 MB) installiert haben , kann dieses Problem behoben werden, wenn Sie der Umgebungsvariablen des Systems Folgendes hinzufügen
Path
:quelle
Ich hatte das gleiche Problem. Installiert mingw mit dem Installationsprogramm unter http://tdm-gcc.tdragon.net/ . Bei der Installation von mingw werden dem Pfad die richtigen Umgebungsvariablen hinzugefügt (die Pfadvariable muss nicht manuell bearbeitet werden). Das hat den Trick für mich getan.
quelle
Nun, wenn es nützlich ist, hatte ich einige Probleme mit cmake, einschließlich dieses. Sie alle verschwanden, als ich den Pfad der globalen Variablen (in meinem Fall die MinGW-Codeblöcke) im System korrigierte. Wenn die Installation von Codeblocks nicht standardmäßig ist und aus einem unbekannten Grund, zeigt diese globale Variable nicht auf die richtige Stelle. Überprüfen Sie, ob der Pfad von Codeblocks oder MinGW korrekt ist:
Klicken Sie mit der rechten Maustaste auf "Arbeitsplatz"> Eigenschaften> Erweiterte Eigenschaften oder Erweitert> Umgebungsvariablen>, um die PATH-Variable zu ändern
Es hat bei mir funktioniert;)
quelle
Ich hatte das gleiche Problem und habe CMAKE_MAKE_PROGRAM in einer Toolchain-Datei angegeben, cmake hat es nicht gefunden. Dann habe ich versucht, -D CMAKE_MAKE_PROGRAM = ... in die Befehlszeile einzufügen, dann hat es funktioniert. Dann habe ich versucht, den Generator von "MinGW Makefiles" auf "Unix Makefiles" zu ändern und das -D CMAKE_MAKE_PROGRAM von der Kommandozeile entfernt, und dann hat es auch funktioniert!
Wenn der Generator auf "MinGW Makefiles" eingestellt ist, ist die Einstellung CMAKE_MAKE_PROGRAM in der Toolchain-Datei aus irgendeinem Grund nicht wirksam, für den Generator "Unix Makefiles" jedoch.
quelle
Es scheint, dass jeder eine andere Lösung hat. Ich habe mein Problem gelöst wie:
Bei der Installation von 64-Bit-Mingw wurde Folgendes installiert: "C: \ Programme \ mingw-w64 \ x86_64-5.1.0-posix-seh-rt_v4-rev0 \ mingw64 \ bin"
Obwohl sich mingw-make.exe unter dem obigen Pfad befand, verwirrte ein ungültiger Charecter oder ein langer Pfadname CMake. Ich versuche, dem Umgebungspfad einen Pfad hinzuzufügen und CMAKE als Parameter anzugeben, der bei mir nicht funktioniert hat.
Schließlich habe ich den komplexen Pfad von mingw-w64 nach "C: / mingw64" verschoben, dann den Umgebungspfad festgelegt und CMake neu gestartet. Problem für mich gelöst.
quelle
Ich hatte das gleiche Problem, das mit folgendem gelöst wird:
Versuchen Sie, alle Ordner so umzubenennen, dass sie nicht länger als 8 Zeichen und ohne Leerzeichen sind.
quelle
Es passiert auch, wenn ich opencv2.3.2 nur mit mingw32 kompilieren möchte (in tdm-gcc-Suiten). Wenn ich tdm-gcc installiere, möchte ich die mingw32-make.exe häufig in make.exe umbenennen. Und ich denke, das könnte die Frage sein. Wenn cmake aufgefordert wird, ein MinGW-Makefiles zu generieren, wird versucht, ming32-make.exe anstelle von make.exe zu finden. Also kopiere ich die make.exe nach mingw32-make.exe und konfiguriere sie in Cmake-gui neu. Endlich funktioniert es! Daher möchte ich Ihnen raten, herauszufinden, ob Sie mingw32-make.exe haben oder nicht, um diese Frage zu lösen.
quelle
Ich habe versucht, mit CMake GammaRay für Qt unter Windows mit mingw zu erstellen. Also hatte ich den Qt installiert. Und ich hatte das gleiche Problem wie andere Benutzer hier.
Der Ansatz, der für mich funktioniert hat, ist das Starten von cmake-gui über die Qt-Build-Eingabeaufforderung (eine Verknüpfung, die vom Qt-Installationsprogramm im Ordner "Startmenü \ Alle Programme \ Qt {QT_VERSION}" erstellt wurde).
quelle
Ich musste die folgenden Zeilen zu meinem Windows-Pfad hinzufügen, um dies zu beheben. CMAKE sollte bei der Installation ansonsten die richtigen Pfade festlegen, solange Sie das Kontrollkästchen aktivieren. Dies ist wahrscheinlich eine andere Lösung, abhängig von der Vielzahl der Versionen, die installiert werden können.
quelle