it-swarm.com.de

CMAKE_MAKE_PROGRAM nicht gefunden

Ich bin mit Cmake am Ende meines Seils angelangt. Es hat so viel Potenzial, aber ich kann nicht die grundlegenden Systemwerkzeuge finden (d. h. "Make"), um funktionieren zu können.

SYMPTOME

Cmake und die Cmake-GUI erzeugen Folgendes (nachdem die CMakeCache.txt-Datei gelöscht wurde):

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" in dieser Frage zu finden, aber ich hatte auch viele Probleme mit CMake, die Bibliotheken und andere Utility-Dateien (Linker, nm, ar usw.) nicht finden konnten. 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; NONSTANDARD Installationsort für MinGW (c:/MinGW-32).

Dinge, die ich getestet habe

1) CMakelists.txt enthält "SET (CMAKE_MAKE_PROGRAM c: /MinGW-32/bin/make.exe FORCE)" innerhalb der ersten 10 Zeilen der Datei.

2) 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 )  

3) Legen Sie CMAKE_MAKE_PROGRAM in einer Umgebungsvariable cmd.exe fest, bevor Sie entweder CMake oder CMake-GUI ausführen.

4) Verwendung einer "Toolchain" -Datei, die CMAKE_MAKE_PROGRAM sowie CMAKE_C_COMPILER usw. identifiziert.

Eine Sache, die gearbeitet hat

CMake erstellt erfolgreich Build-Dateien, WENN ich die GUI zum Auffüllen der CMAKE_MAKE_PROGRAM-Variablen ("C: /MinGW-32/bin/make.exe") auffülle.

FRAGEN)

Ich kann CMake zum Laufen bringen, wenn ich den Namen des make-Programms über die GUI identifiziere. Wie kann man CMake ermöglichen, mein Make-Programm ohne Benutzereingriff mit der Kombination Windows 7 (64-Bit)/MinGW zu finden?

50
westie314

Ich habe zwei Vorschläge: 

  1. Haben Sie make in Ihrer Umgebungsvariable% PATH%? Auf meinem System muss ich% MINGW_DIR%\bin zu% PATH% hinzufügen.

  2. Hast du make installiert? Je nach Ihrer mingw-Installation kann es sich um ein separates Paket handeln.

  3. Letzter Ausweg: Können Sie den vollständigen Pfad auf der Kommandozeile durchgehen? cmake -D"CMAKE_MAKE_PROGRAM:PATH=C:/MinGW-32/bin/make.exe" ..\Source

28
André

Aktivieren Sie in der GUI das Kontrollkästchen "Erweitert". Es sollten jetzt mehrere Einträge angezeigt werden. Benennen Sie Ihre Datei mingw32-make.exe in make.exe um (Sie können nur eine Kopie erstellen) und legen Sie die Dateipfadvariable CMAKE_MAKE_PROGRAM auf den Speicherort der Datei fest.

19
CptAJ

Gerade das gleiche Problem gelöst. Ich hatte MinGW mit GCC und G ++ installiert, aber nicht das Make selbst. Also hat mir dieser Befehl geholfen:

mingw-get.exe install mingw32-make

Löschen Sie anschließend den CMake-Cache (CMakeCache.txt im Arbeitsverzeichnis von CMake) und führen Sie CMake erneut aus.

11
Melebius

In früheren Antworten wurde vorgeschlagen, CMake (neu) zu installieren oder zu konfigurieren. Alle haben nicht geholfen.

Früher hat MinGWs Make-Compilierung den Dateinamen mingw32-make.exe verwendet und jetzt make.exe. Die meisten vorgeschlagenen Methoden zum Konfigurieren von CMake für die Verwendung der anderen Datei funktionieren nicht.

Kopieren Sie einfach make.exe und benennen Sie die Kopie mingw32-make.exe um.

5
Bernd Elkemann

Ich habe versucht, die fehlenden Pakete zu installieren. Die Installation der Toolchain und der Neustart von CLion lösten in meinem Fall alles:

pacman -S mingw-w64-x86_64-cmake mingw-w64-x86_64-extra-cmake-modules
pacman -S mingw-w64-x86_64-make
pacman -S mingw-w64-x86_64-gdb
pacman -S mingw-w64-x86_64-toolchain
3
Umut Uzun

Vor kurzem hatte ich das gleiche Problem (Kompilieren von OpenCV mit CMake und Qt/MinGW unter WIN764).

Und ich denke, ich löse das auch auf meiner Umgebungsvariablen PATH (über Control Panel\All Control Panel Items\System\Advanced Sytem Settings) mit% MINGW_DIR%\bin und% CMAKE_DIR%/bin 

Außerdem habe ich cmake2.8 in einem einfachen Verzeichnis installiert (ohne Leerzeichen)

3
nank

Ich hatte genau das gleiche Problem, als ich versuchte, OpenCV mit Qt Creator (MinGW) zu kompilieren, um die statischen .a - Bibliotheksdateien 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 Umgebungsvariable Path des Systems Folgendes hinzufügen:

C:\Qt\Qt5.2.0\Tools\mingw48_32\bin
3
karlphillip

Ich hatte das gleiche Problem und gab CMAKE_MAKE_PROGRAM in einer Toolchain-Datei an. Cmake konnte es nicht finden. 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" in "Unix Makefiles" zu ändern und das -D CMAKE_MAKE_PROGRAM von der Befehlszeile zu entfernen, und dann funktionierte es auch!

Wenn der Generator auf "MinGW Makefiles" gesetzt ist, ist die Einstellung CMAKE_MAKE_PROGRAM in der Toolchain-Datei aus irgendeinem Grund nicht wirksam, für den "Unix Makefiles" -Generator jedoch.

1
Bert Regelink

Ich hatte das gleiche Problem. Installierte mingw mit dem Installationsprogramm unter http://tdm-gcc.tdragon.net/ . Bei der Installation von mingw werden dem Pfad die korrekten Umgebungsvariablen hinzugefügt (Die Pfadvariable muss nicht manuell bearbeitet werden). 

1
Asitha

Wenn es nützlich ist, hatte ich einige Probleme mit cmake, darunter auch dieses. Sie sind alle verschwunden, wenn ich die globale Variable (in meinem Fall die MinGW-Codeblocks) PATH im System fixiere. Wenn die Codeblocks-Installation nicht in der Standardeinstellung ist und aus irgendeinem Grund nicht bekannt ist, zeigt diese globale Variable nicht auf die richtige Stelle. Prü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 für mich funktioniert;)

1
Eduardo Segura

Ich hatte das gleiche Problem, das mit folgendem gelöst wurde:

Versuchen Sie, alle Ordner umzubenennen, um nicht mehr als 8 Zeichen ohne Leerzeichen zu enthalten.

0
Hamid Baghernia

Ich musste meinem Windows-Pfad die folgenden Zeilen hinzufügen, um das Problem zu beheben. CMAKE sollte die korrekten Pfade bei der Installation festlegen, wenn Sie das Kontrollkästchen aktivieren. Dies ist wahrscheinlich eine andere Lösung, abhängig von den unzähligen Versionen, die installiert werden können.

C:\msys64\mingw32\bin
C:\msys64\mingw64\bin
0
ozzieisaacs

Es passiert auch, wenn ich opencv2.3.2 nur mit mingw32 (in tdm-gcc suites) kompilieren möchte. Wenn ich tdm-gcc installiere, möchte ich mingw32-make.exe häufig in make.exe umbenennen. Und ich denke, das könnte die Frage sein. Wenn cmake aufgefordert wird, ein MinGW-Makefile zu generieren, wird versucht, ming32-make.exe anstelle von make.exe zu finden. Also kopiere ich die make.exe nach mingw32-make.exe und rekonfiguriere sie in Cmake-gui. Endlich klappt es! Ich würde also gerne raten, ob Sie mingw32-make.exe haben oder ob Sie diese Frage nicht beantworten wollen.

0
ZHU Xinzhao

Auf Ubuntu glaube ich, dass ich den Compiler vermisst habe. Behoben mit:

Sudo apt install build-essential
0
ErichBSchulz

Es scheint, dass jeder eine andere Lösung hat. Ich habe mein Problem gelöst wie: 

Wenn ich 64bit mingw installiere, installierte es sich selbst unter: "C:\Programme\mingw-w64\x86_64-5.1.0-posix-seh-rt_v4-rev0\mingw64\bin" 

Obwohl sich mingw-make.exe unter dem Pfad oben befand, wurde ein ungültiger Zeichen- oder langer Pfadname mit CMake verwirrt. Ich versuche, Pfad zum Umgebungspfad hinzuzufügen, versuche CMAKE als Parameter anzugeben, dass es für mich nicht funktioniert hat. 

Schließlich habe ich den komplexen Pfad von mingw-w64 nach "C:/mingw64" verschoben, dann den Umgebungspfad gesetzt und CMake neu gestartet. Problem gelöst für mich.

0

Ich habe versucht, CMake zu verwenden, um 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 Qt build Prompt (eine Verknüpfung, die vom Qt-Installationsprogramm im Ordner "Startmenü\Alle Programme\Qt {QT_VERSION}" erstellt wurde).

0