wake-up-neo.com

OS X Eclipse C++ - Start fehlgeschlagen - Binär nicht gefunden

Ich bin ziemlich beunruhigt, da mir das nicht so Kopfschmerzen bereiten sollte. Ich habe die neuesten Eclipse Indigo- und all CDT-C++ - Plugins für MAC OS X 10.7.1/heruntergeladen.

Nach dem Neustart nach der Installation der obigen CDT-Plugins habe ich eine einfache "Hallo Welt" -C++ - Anwendung entwickelt und versucht, die Anwendung auszuführen. Fehlermeldung. Ich habe mehrere Korrekturen gelesen, aber keine hat funktioniert. Ich habe versucht, den Linker- und Compiler-Befehlen das Flag -Arch i386 hinzuzufügen, immer noch kein Glück.

Hat jemand erfolgreich Eclipse C++ auf 10.7.1 laufen lassen ?????? Das macht mich wahnsinnig. Ich kann einfach dasselbe Programm in VIM schreiben und es einfach über das Terminal kompilieren und einfach ausführen. Eclipse MÖCHTE NICHT LANG SPIELEN.

Ich werde jedem, der helfen kann, zutiefst verpflichtet sein !!!!!

EDIT: Compiler-Ausgabe

**** Build of configuration Debug for project HelloWorld ****
make all Building file: ../main.cpp
Invoking: GCC C++ Compiler g++ -I/Developer/SDKs/MacOSX10.6.sdk/usr/include -O0 -g3 -Wall -c -fmessage-length=0 -Arch i386 -MMD -MP -MF"main.d" -MT"main.d" -o "main.o" "../main.cpp"
Finished building: ../main.cpp
Building target: libHelloWorld
Invoking: MacOS X C++ Linker g++ -Arch i386 -dynamiclib -o "libHelloWorld" ./main.o
Finished building target: libHelloWorld
**** Build Finished ****
22
5k1zk17

Für die von Ihnen, die neu in der Programmierung von/Eclipse/IDEs sind und den gleichen Fehler erhalten, aber die oben genannten Lösungen nicht funktionieren, habe ich mein "Fehlgeschlagenes Starten. Binär nicht gefunden" gelöst. Fehler, indem Sie Folgendes tun: Stellen Sie sicher, dass Sie Ihr Projekt ("Projekt"> "Alle erstellen") erstellen, bevor Sie versuchen, zu debuggen. Ich dachte, dass die IDE das Gebäude machen würde, wenn ich auf Debugging oder Ausführen geklickt habe, aber das ist nicht der Fall (natürlich im Nachhinein). Neulektion gelernt. Nach dem Erstellen sollten Sie im Stammverzeichnis des Projekts einen Ordner "Binaries" und "Debug" sehen.

Ich habe OS X 10.7.3 verwendet, wenn es darauf ankommt, obwohl ich davon ausgehe, dass der Fehler, den ich gemacht habe, von grundlegender Bedeutung ist und jede Eclipse-Distribution denselben Fehler ergeben würde.

32
Nate

Ich verwende Eclipse Juno mit CDT auf einem 2007 Macbook mit Snow Leopard. Ich habe die zwei Symptome:

  1. Kein Binärordner im Projektexplorer und
  2. Der Start ist fehlgeschlagen. Binary not found 'Fehler.

Ich habe stundenlang bei Google nach einer Antwort gesucht, lange genug, um festzustellen, dass diese beiden Symptome auf eine beliebige Anzahl von Problemen hinweisen, die seit nicht ganz einem Jahrzehnt ohne angemessene Lösung gemeldet wurden. Das ist genau dort ein Problem, weil nach einem Jahrzehnt mehr als genug Eingabedaten vorhanden sein sollten, um irgendwo eine Fehlerbehebungsprozedur bereitzustellen, die den Benutzer Schritt für Schritt durch die Beseitigung aller möglichen Ursachen führt.

Stattdessen habe ich stundenlang über eine Vielzahl von Menschen gelesen, von denen viele ihr spezielles Problem gelöst haben, aber anscheinend alle etwas anderes tun mussten, um dorthin zu gelangen.

Dies sollte nicht so schwer zu lösen sein. Besonders in Fällen wie meinem (aber ich bin nicht der einzige), in denen in der Konsolenansicht ein Build ohne Fehler angezeigt wird, kann der Benutzer die Binärdatei (die Eclipse bizarrerweise nicht findet) auf den Desktop kopieren und ohne diese ausführen Probleme mit Finder oder einer Bash-Terminal-Sitzung.

All dies scheint ziemlich nachdrücklich auf das Fehlen geeigneter Indikatoren im Mach0 64-Binärparser hinzudeuten , die uns genau sagen sollten was es braucht was es nicht sieht .

Verschärft wird dies freilich bei MacBooks wie meinen, die ein 64-Bit-Betriebssystem [Snow Leopard] auf einer 64-Bit-CPU betreiben, das der Hersteller leider mit einem 32-Bit-Boot-Kernel gehemmt hat. Aber seien Sie gewarnt, ich habe bereits den -Arch i386 g ++ - Schalter und das erneute Verknüpfen von g ++ zu g ++ - 4.0 ohne Änderung der Symptome ausprobiert.

ADDENDUM ADDED 10/07/2012:

Ich füge diese Checkliste hinzu, in der Hoffnung, den zweifellos vielen anderen, die diese Frage in den kommenden Jahren stellen werden, einen Weg aufzuzeigen. Dieser Weg spiegelt wider, was ich bei der Verwendung von Eclipse Juno mit einem Mac mit Snow Leopard für notwendig befunden habe:

1) Gehen Sie zu Preferences-> C/C++ -> New CDT Project Wizard und stellen Sie unter Preferred Toolchains sicher, dass alle ausführbaren Projekttypen auf MacOSX GCC eingestellt sind.

2) Dies ist ein großes Problem. Ich konnte einen Binärdateien-Ordner im Projekt-Explorer abrufen und das Projekt daher nach dem Erstellen ausführen, indem ich einen Projektnamen verwendete, der keine Punkte ['.'] Enthielt. Dies habe ich aus einer anderen Antwort hier erfahren, die ich einige Stunden nach meiner vorherigen Nachricht bearbeitet habe. Diese Anforderung ist leicht zu übersehen, daher eine häufige Anforderung, insbesondere wenn Sie Eclipse-Erfahrung haben, jedoch nur mit anderen Sprachen, da in Tutorials für andere Sprach-Plug-ins [wie PyDev oder Java] häufig Projekte mit Punkten im Namen erstellt werden. Wenn Sie diese Gewohnheit mit anderen Sprachen entwickelt haben, brechen Sie sie ab, wenn Sie CDT für C/C++ verwenden. Beachten Sie jedoch, dass es diesmal nicht ausreicht, nur einen Rechtsklick auszuführen und einen vorhandenen Projektnamen ohne Punkte umzubenennen. Am einfachsten ist es, Ihr altes Projekt zu löschen und ein neues mit einem Namen ohne Punkte zu erstellen.

3) Es gibt viele Websites, auf denen Sie gewarnt werden, entweder den Compiler-Schalter -Arch i386 zu verwenden oder die Links für/usr/bin/gcc und/usr/bin/g ++ so zu ändern, dass sie auf gcc-4.0 und g ++ - 4.0 verweisen gcc-4.2 und g ++ - 4.2. Ich erstellte ein Bash-Skript, um das Hin- und Herwechseln zu vereinfachen, und untersuchte, ob dies erforderlich war. Zumindest nicht mit meinem Macbook. Basierend auf dem, was ich an einer Site von einem Mach-O-Entwickler gelesen habe, vermute ich, dass die aktuelle Version von Mach-0 64 in beide Richtungen funktioniert. Welches ist ein guter Übergang zu ...

4) Gehen Sie in den Projekteigenschaften und nicht in den Voreinstellungen zu C/C++ Build-> Settings und stellen Sie unter Binary Parsers sicher, dass Mach-O 64 Parser aktiviert ist. Stellen Sie sicher, dass dies und nicht der veraltete Mach-O-Parser aktiviert ist.

5) Zu diesem Zeitpunkt, nachdem Sie Ihr Projekt erstellt haben, sollten im Projektexplorer mehrere Dinge ersichtlich sein:

6) Unter dem Projektordner sollte sich nun ein Binärordner befinden.

7) In diesem Binaries-Ordner sollte sich nun Ihre ausführbare Datei befinden. Es sollte [x86_64/le] daneben sein, wenn Ihr Mac wie ich effektiv 32-Bit ist. Jetzt ist nicht der beste Zeitpunkt, um sich mit dem verwirrenden Thema zu befassen, ob Ihr Mac tatsächlich 32-Bit- oder 64-Bit-Computer ist. Wenn Sie nicht wissen, und viele Leute nicht, weil Apple es verwirrend macht, schauen Sie sich die kleine App an, die von http: //www.ahatfullofsky.comuv) heruntergeladen werden kann. com/Deutsch/Programme/SMS/SMS.html was Ihnen sagt, was Wahrheit ist. Es ist kostenlos, aber der "Preis" besteht darin, dass Sie die Anzeigen oben auf der Seite scrollen müssen, um die politische Einstellung des Programmierers widerzuspiegeln.

32
istlota

auf mac:

  1. Stellen Sie sicher, dass Sie xcode installiert haben. Testen Sie es, indem Sie "info g ++" schreiben. Sie müssen die richtigen Informationen zum Compiler sehen. 

  2. Bauen Sie Ihr Projekt auf.

  3. Wechseln Sie in den Ordner Ihres Projekts. Abhängig von Ihren Gebäudekonfigurationen sollte eine ausführbare Datei im Debug- oder Realize-Ordner angezeigt werden. Wenn Sie auf die ausführbare Datei klicken, sollten Sie das Ergebnis auf dem Terminal sehen.

  4. Gehen Sie zurück zu Ecliipse, gehen Sie zu Konfigurationen ausführen/ausführen ... und navigieren Sie zu dem Ordner, in dem sich die ausführbare Datei befindet (eine, die Sie bereits gefunden haben). In diesem Fenster können Sie auch die Build-Konfiguration nach Belieben ändern. Und für jeden Lauf automatisch bauen lassen.

  5. Nochmal ausführen, sollte es funktionieren. 

Viel Glück ! 

10
telcom_un

Ich hatte das gleiche Problem, dann fand ich eine Lösung auf this site . Lass es mich kurz erklären;

  1. Erstellen Sie Ihr C++ - Projekt.
  2. Schauen Sie sich die Projekteigenschaften (⌘I) an,
  3. Wählen Sie unter binären Eigenschaften den Mach-O-Parser aus.
  4. Schreiben Sie Ihre Codes auf,
  5. Vergessen Sie nicht, Ihr Projekt (⌘B) vor dem Ausführen zu erstellen.
7
Fraukn

Sie sollten die Einstellungen für Ihr Projekt ändern, um eine ausführbare Datei anstelle einer dynamischen Bibliothek zu erstellen:

Invoking: MacOS X C++ Linker g++ -Arch i386 -dynamiclib -o "libHelloWorld" ./main.o`

Gehen Sie zu Projekteigenschaften -> C/C++ - Erstellen -> Einstellungen -> Artefakt erstellen, und wählen Sie in der ersten Dropdown-Liste Executable aus.

4
Antonio Pérez

Wenn Sie erfolgreich gebaut haben, aber versuchen Sie es auszuführen, wird ein Fehler angezeigt:

 enter image description here

Eine mögliche Lösung wäre das Hinzufügen einer neuen Konfiguration mit vollständigem Pfad zu Ihrer binären Ausgabedatei

(Run-> Run Configuration ...-> Main-> C++ Application):

 enter image description here

2
0x8BADF00D

Wenn Ihr Projektname ein "." Enthält (Punkt), die Binärdatei wird beim Erstellen des Projekts nicht erstellt. __ Entfernen Sie alle "." (Punkte) aus dem Projektnamen und erstellen Sie ihn neu oder versuchen Sie, ein neues Projekt zu erstellen.

Viel Spaß beim Codieren!

2
Sushant Kr

Ich hatte das gleiche Problem. Die Antwort kann schwer zu finden sein, da das Problem "Binär nicht gefunden" mehrmals aufgetaucht ist, mit unterschiedlichen Ursachen und Lösungen (Auswahl des 64-Bit-Parsers usw.).

Es stellte sich heraus, dass die Lösung in meinem Fall einfach war: Sie müssen nur einmal für jedes neu erstellte Projekt einen manuellen Build durchführen. Danach funktioniert es wie gewohnt.

Details: Verwenden Sie eine Neuinstallation von Eclipse Indigo Service Release 1 unter Mac OS 10.7.2.

2
Harrison Brace

Ich benutze Eclipse Oxygen und folgendes Problem wurde behoben:

 Eclipse Oxygen

Klicken Sie mit der rechten Maustaste auf Ihr Projekt und gehen Sie zu properties. Navigieren Sie zu C/C++ Build> Tool Chain Editor und wählen Sie MacOSX GCC in der Current-Toolchain und Apply und Close aus.

Erstellen Sie Ihr Projekt mit CMD + B und führen Sie es aus.

1
Maihan Nijat

Ich habe ein ähnliches Problem mit Eclipse gelöst, indem ich eine "Launch Configuration" erstellt habe. Ich verwende die Indigo-Version von Eclipse unter OSX Lion mit CDT (C/C++ - Entwicklungsumgebung). Ich habe die Option zum Erstellen einer neuen Startkonfiguration in Project-> Properties-> Run/Debug Settings gefunden.

Dieses Problem ist aufgetreten, nachdem ein leeres "Hello World Ansi C Autotools-Projekt" erstellt und erstellt wurde. Der Erstellungsprozess erstellte eine funktionierende ausführbare Datei als src/a.out. Ich konnte a.out erfolgreich vom Terminal aus ausführen, aber Eclipse verstand nicht, dass dies eine ausführbare Datei für mein Projekt war, bis ich eine Startkonfiguration erstellt habe, die darauf verweist. Nachdem ich das getan hatte, konnte ich a.out wie üblich mit der grünen Schaltfläche ausführen.

1
Kevin Olree

Ich hatte das gleiche Problem, auch wenn ich das Artefakt auf ausführbar gesetzt hatte. Dies ist darauf zurückzuführen, dass die Einstellung für die gemeinsam genutzte Bibliothek angekreuzt wurde, und dies bewirkt, dass ein Dylib erstellt wird, obwohl Sie eine ausführbare Datei angegeben haben. 

0
Ryan Page

Ich hatte ein ähnliches Problem, aber der Code war anders. Vergewissern Sie sich in der Datei File.h

virtual ~Destructor () {}; //Don't forget Curly braces {}

Die obige Anweisung zeigt den Destruktor initialized () und definiert mit geschweiften Klammern {}. In meinem Code habe ich vergessen, Destructor zu definieren. Hoffe das hilft

0
Sdembla

Ich hatte das gleiche Problem, also fummelte ich um ein bisschen herum und fand heraus, dass, wenn ich auf den "Profil" -Button (grünes Spiel-Symbol mit einer kleinen Uhr darunter) klickte, rechts neben dem "Run" -Button mein Das Programm würde ausgeführt, wenn ich das nächste Mal auf die Schaltfläche Ausführen klickte.

Ich weiß eigentlich nicht, was das getan hat, aber ich konnte den Code ausführen.

wenn jemand weiß, warum dies geholfen hat und ob es eine tatsächliche Lösung ist oder nicht, zögern Sie nicht, zu antworten!

0
JoeCool

Ich führe dies aus, indem ich den Builder Type auf Internal Builder auf der Registerkarte C/C++ Build im Projekteigenschaften - Dialogfeld setze.

0
Gabby Moore

Unabhängig von der Vorgehensweise, mit der dieses Problem in Ihrem Arbeitsbereich gelöst werden sollte, schien dieses Problem für das von mir erstellte Projekt ursprünglich zu sein. Weder die Argumente verwenden noch sicherstellen, dass die gcc-Version für die Verknüpfung funktioniert hat. Ich habe eine intuitive Lösung gefunden. Hier ist es: zu dem Fehler "... binär nicht verfügbar ...". Gehen Sie folgendermaßen vor: (Denken Sie daran, dass die folgenden Schritte ausgeführt werden, nachdem Sie eine der obigen Routen durchlaufen haben und keiner von ihnen das Problem gelöst hat.

1.) Alles löschen - das Projekt und die Dateien. 2.) Neue Projekt- und Quelldateien erstellen 

0
Nirmal