web-dev-qa-db-de.com

Eclipse CDT: Keine Regel zum Ziel

Mein Eclipse CDT klagt immer wieder "make: *** no rule to make all", wenn ich versuche, den folgenden Code zu kompilieren: 

#include <iostream>
using namespace std;

int main() {
  cout << "Hello World!!!" << endl; // prints Hello World!!!
  return 0;
}

Weiß jemand, wie man das lösen kann? Ich habe den Beitrag mit dem ähnlichen Titel gelesen: make: *** Keine Regel zum Ziel "Alle". Halt. Eclipse-Fehler Aber keine dieser Antworten hilft ...

Danke vielmals!

35
Mark Z.

Sie müssen Ihre Projekteinstellungen ändern, damit Eclipse-CDT Ihre Makefiles für Sie verwaltet.

  1. Wählen Sie in der Menüleiste Projekt-> Eigenschaften.
  2. Klicken Sie links im Dialogfeld auf C/C++ Build.
  3. Wählen Sie auf der Registerkarte Builder Settings auf der rechten Seite "Makefiles automatisch generieren" im Abschnitt "Makefile-Generierung" aus.
  4. Klicken Sie auf OK und bauen Sie erneut.
36
ScoPi

"all" ist eine Standardeinstellung, obwohl die Registerkarte Behaviour-> Build (Incremental Build) keine Variable hat. Ich habe gelöst als

  1. Gehen Sie zu Projekteigenschaften> C/C++ Build> Registerkarte Behavior.
  2. Lassen Sie Build (inkrementelles Build) aktiviert.
  3. Geben Sie "test" in das Textfeld neben Build (Incremental Build) ein.
  4. Projekt erstellen Sie sehen eine Fehlermeldung.
  5. Gehen Sie zurück zu Build (Incremental Build) und löschen Sie "test".
  6. Projekt erstellen.
13
user1146300
  1. Wählen Sie in der Menüleiste Projekt-> Eigenschaften.

  2. Klicken Sie links im Dialogfeld auf C/C++ Build.

  3. Überprüfen Sie auf der Registerkarte Builder-Einstellungen auf der rechten Seite, ob der "Build-Standort" korrekt ist.
10
raptoravis

Wählen Sie in C/C++ Build -> Builder Settings die Option Internal builder (anstelle von External builder) aus.

Für mich geht das.

7
wall-e

Ich habe dieses Problem gerade für mich gelöst. verwies sogar auf diese Frage.

Ich gehe davon aus, dass Sie nicht die Regel "Alle" geschrieben haben, über die sich Eclipse beschwert. Wenn dies der Fall ist, führen Sie folgende Schritte aus:

  1. Gehen Sie zu Projekteigenschaften> C/C++ Build> Registerkarte Behavior.
  2. Lassen Sie Build (inkrementelles Build) aktiviert.
  3. Entfernen Sie "all" aus dem Textfeld neben Build (Incremental Build).
  4. Kompilieren Sie sich weg!

Dadurch weiß Eclipse, dass Sie nicht versuchen, ein Make-Ziel namens "All" zu verwenden. Aus irgendeinem Grund ist dies die Standardeinstellung.

6
drmuelr

Sie haben 2 Fälle

  • Wenn Sie Makefile selbst erstellen, gehen Sie zu 
  1. Wählen Sie in der Menüleiste Projekt-> Eigenschaften.
  2. Klicken Sie links im Dialogfeld auf C/C++ Build.
  3. Automatisches Makefile automatisch deaktivieren -> Überprüfen Sie auf der rechten Seite der Registerkarte Einstellungen für Builder, ob der Build-Speicherort auf. richtig (das ist der Ort, an dem sich Ihr Makefile befindet)
  • Wenn Sie kein Makefile haben -> Sie benötigen Eclipse DS-5, um Makefile erstellen zu können
  1. Wählen Sie in der Menüleiste Projekt-> Eigenschaften.
  2. Klicken Sie links im Dialogfeld auf C/C++ Build.
  3. Aktivieren Sie das automatische Erstellen von Makefile

Ich rate Ihnen, Makefile selbst zu erstellen

3
Dang_Ho

Wenn Sie ein Ziel über make-Dateien erstellen, überprüfen Sie manchmal, ob alle c-Dateien mit korrekter Dateistruktur richtig benannt sind. 

2
bilalraja

Projekt -> Bereinigen -> Alle Projekte bereinigen und dann Projekt -> Build Project hat für mich funktioniert (Ich habe die Deaktivierung der automatischen Erstellung von Dateien automatisch durchgeführt und diese vorher überprüft.) Dies war jedoch für ein AVR-Projekt (Mikroprozessorprogrammierung) durch das AVR CDT-Plugin in Eclipse Juno. 

2
Demortes

Ich habe dieselbe Fehlermeldung erhalten, nachdem ich Quelldateien umbenannt und verschoben habe. Keine der vorgeschlagenen Lösungen funktionierte für mich und ich verfolgte den Fehler dahingehend, dass die Metadateien im Debug-Verzeichnis nicht aktualisiert wurden. Durch das Löschen des gesamten Debug-Verzeichnisses und das erneute Erstellen des Projekts wurde das Problem für mich gelöst.

1
Savvas Savvides

Noch eine andere Lösung:

Ich habe in objects.mk die Datei bekommen

################################################################################
# Automatically-generated file. Do not edit!
################################################################################

USER_OBJS := /home/../mylib.so

LIBS := -lstdc++fs -lGL -lGLU -lGLEW -lglut -lm -lmylib

dann las die erste Zeile nicht. Dann nächste Zeile geändert. Es war ein Ordner eines anderen Projekts, da ich diese mit der Funktion "Projekt kopieren/kopieren" kopiert habe und dies den Fehler für mich verursacht hat. Ich habe meineLib.so in /proper_address/reallyMyLib.so geändert und es hat funktioniert.

Warnung: Es kann unbekannten Orten schaden! Sichern Sie das gesamte Projekt, bevor Sie dies tun. Weil es sagt "nicht bearbeiten".

Wenn die oben genannten Lösungen für Sie nicht funktionierten, 

Möglicherweise haben Sie die C++ - Compiler-Pakete nicht ordnungsgemäß installiert. Gehen Sie wie folgt vor: (Anweisungen für Win7, 32-Bit/64-Bit)

  1. Stellen Sie sicher, dass Sie ein oder mehrere der unterstützenden C++ - Compilerpakete ordnungsgemäß installieren:

    (Ich habe MinGW installiert (HowTo-Install-Videos finden Sie auf YouTube))

    Falls Sie MinGW-Pakete installieren möchten:

    • Laden Sie das MinGW-Installationsprogramm von der obigen Installationsseite herunter
    • Führen Sie das MinGW-Installationsprogramm aus und stellen Sie sicher, dass Sie die folgenden Pakete auswählen:

      - Mingw-Entwickler-Toolkit 
      - mingw32-Basis 
      - mingw32-gcc-g ++ 
      - msys-base 

    • Fügen Sie der PATH-Umgebungsvariablen MinGW- und MSYS-Bin-Pfade hinzu. Wenn Sie die Standardinstallationsordner nicht geändert haben, sollten Sie Folgendes hinzufügen:

    C:\MinGW\msys\1.0\bin;C:\MinGW\bin;
    • Melden Sie sich ab und wieder an, um sich zu vergewissern, dass die Umgebungsvariablen aktiviert wurden
  2. Erstellen Sie ein neues C++ - Projekt in Eclipse:

    • Neu -> C++ - Projekte
    • Wählen Sie Projekttyp: Ausführbare Dateien -> Hello World C++ - Projekt
      (Jetzt rechts, unter Toolchains, sehen Sie MinGW GCC)
    • Wählen Sie MinGW GCC aus der Toolchains-Liste aus
    • Klicken Sie auf "Fertig stellen"
  3. In Ihrem Hello World-Projekt sehen Sie den Ordner + src und + Includes (Wenn ja, sind Sie wahrscheinlich bereit zu gehen).

  4. Projekt erstellen
  5. Starte es!
0
Mercury