wake-up-neo.net

"Start fehlgeschlagen. Binär nicht gefunden." Schneeleopard und Eclipse C/C++ IDE Problem

Keine Frage, ich habe gerade im Internet nach einer Lösung für dieses Problem gesucht und gedacht, ich würde es mit den guten Leuten von SO teilen. Ich werde es so formulieren, dass es für Anfänger zugänglich ist. :) (Entschuldigung, wenn dies der falsche Ort ist - versuche nur, hilfreich zu sein.)

Dieses Problem tritt bei fast jedem Benutzer OS X Snow Leopard auf, der versucht, die Eclipse C/C++ - IDE zu verwenden, ist jedoch besonders ärgerlich für die Benutzer (wie ich), die Eclipse C/C++ IDE in Leopard verwendet haben konnten bei der Aktualisierung nicht mehr mit Eclipse arbeiten. Das Problem tritt auf, wenn Benutzer ihre Software erstellen, kompilieren oder verknüpfen. Sie erhalten den folgenden Fehler:

Start fehlgeschlagen Binär nicht gefunden.

Außerdem ist der Zweig "Binaries" im Projektfenster auf der linken Seite einfach nicht vorhanden.

DAS PROBLEM: Ist das mit Snow Leopard gelieferte GCC 4.2 (die GNU Compiler Collection), das Binärdateien standardmäßig in 64-Bit kompiliert. Leider kann der von Eclipse verwendete Linker keine 64-Bit-Binärdateien verstehen. Es liest 32-Bit-Binärdateien. Es mag andere Probleme geben, aber kurz gesagt, sie gipfeln darin, dass keine Binärdatei generiert wird, zumindest nicht eine, die Eclipse lesen kann, was dazu führt, dass Eclipse die Binärdateien nicht findet. Daher der Fehler.

Eine Lösung ist das Hinzufügen eines -Arch-i686-Flags, wenn die Datei erstellt wird. Die manuelle Erstellung der Datei ist jedoch jedes Mal ärgerlich. Zum Glück kommt Snow Leopard auch mit GCC 4.0, das standardmäßig in 32 Bit kompiliert wird. Eine Lösung besteht also darin, diesen als Standard-Compiler zu verknüpfen. So habe ich es gemacht.

DIE LÖSUNG: Die GCCs befinden sich in/usr/bin (normalerweise ein versteckter Ordner). Sie können ihn also nicht im Finder sehen, wenn Sie dem System nicht explizit mitteilen, dass Sie versteckte Ordner sehen möchten. Sie möchten jedoch in den Ordner/usr/bin gehen und den Pfad löschen, der den GCC-Befehl mit GCC 4.2 verbindet, und einen Pfad hinzufügen, der den GCC-Befehl mit GCC 4.0 verbindet. Wenn Sie oder Eclipse versuchen, auf GCC zuzugreifen, möchten wir, dass der Befehl zu dem Compiler wechselt, der standardmäßig 32 Bit enthält, damit der Linker die Dateien lesen kann. Wir möchten nicht, dass der Compiler in 64 Bit kompiliert wird.

Am besten gehen Sie zu Applications/Utilities und wählen Sie die App namens Terminal aus. Eine Textaufforderung sollte angezeigt werden. Es sollte etwas wie "(Computername): ~ (Benutzername) $" (mit einem Leerzeichen für Ihre Benutzereingabe am Ende) sagen. Um die obigen Aufgaben auszuführen, geben Sie die folgenden Befehle ein, geben Sie die einzelnen Befehle in der Reihenfolge VERBATIM ein und drücken Sie nach jeder einzelnen Zeile die Eingabetaste.

cd /usr/bin
rm cc gcc c++ g++
ln -s gcc-4.0 cc
ln -s gcc-4.0 gcc
ln -s c++-4.0 c++
ln -s g++-4.0 g++

Wie ich bekomme ich wahrscheinlich eine Fehlermeldung, die besagt, dass Sie nicht berechtigt sind, auf diese Dateien zuzugreifen. Wenn ja, versuchen Sie stattdessen die folgenden Befehle:

cd /usr/bin
Sudo rm cc gcc c++ g++
Sudo ln -s gcc-4.0 cc
Sudo ln -s gcc-4.0 gcc
Sudo ln -s c++-4.0 c++
Sudo ln -s g++-4.0 g++

Sudo kann Sie zur Eingabe eines Kennworts auffordern. Wenn Sie Sudo noch nie verwendet haben, drücken Sie einfach die Eingabetaste. Wenn dies nicht funktioniert, versuchen Sie das Kennwort für Ihr Hauptadministratorkonto.

ANDERE MÖGLICHE LÖSUNGEN. Sie können möglicherweise Build-Variablen in Eclipse eingeben. Ich habe es versucht, aber ich weiß nicht genug darüber. Wenn Sie es fühlen wollen, ist die Flagge, die Sie wahrscheinlich brauchen werden, -Arch i686. Ernsthaft, GCC-4.0 hat die ganze Zeit für mich gearbeitet, und ich sehe keinen Grund, jetzt umzusteigen. Es gibt möglicherweise eine Möglichkeit, den Standard für den Compiler selbst zu ändern, aber ich weiß noch nicht genug darüber.

Ich hoffe, das war hilfreich und informativ. Gute Codierung!

23
Alex

nur für Aufzeichnungen, nachdem ich mich 30 Minuten lang gekämpft hatte, löste ich dieses Problem unter Lion (Mac 10.7), indem ich Mach-O 64 Parser und Elf Parser unter: Projektmenü -> Eigenschaften -> C/C++ - Build -> Einstellungen -> Binäre Parser auswählte Registerkarte (erste Registerkarte oder dritte Registerkarte in Eclipse Version: 3.7.2) [während Sie süße Flucht von gwen stefani lol hören].

19
Viren

Ich hatte die gleiche Nachricht von bekommen 

Start fehlgeschlagen Binär nicht gefunden.

da ich nicht wusste, dass ich auf den Projektordner klicken und "Projekt erstellen" auswählen musste. Dies muss nicht in Java-Projekten in Eclipse gemacht werden, daher haben andere Anfänger wie ich möglicherweise das gleiche Problem.

18
Charlie

wie bereits erwähnt, kann dies einfach durch Hinzufügen des erforderlichen Flag in Eclipse erreicht werden.

Öffnen Sie dazu das Eigenschaftenfenster und gehen Sie zu "c/c ++ build"> "Einstellungen". In der Baumansicht auf der rechten Seite gehen Sie auf "Verschiedenes" von "MacOS X C Linker" und "GCC C Compiler" und fügen Sie in das Textfeld ~ "flags" ein: "-Arch i686".

8
none

Ich verwende Mac OSX 10.6.8 und auf meinem Eclipse war die Cross GCC Toolchain installiert. Also habe ich das gemacht:

  1. Wählen Sie unter Eigenschaften für das Projekt C/C++ Build -> Tool Chain Editor aus.
  2. Ändern Sie die aktuelle Toolchain von Cross GCC in MacOSX GCC.
  3. Ich habe auch den Current Builder in CDT Internal Builder geändert. (Ich bin nicht sicher, ob das eine Rolle spielte.)
  4. Ich habe alles unter Einstellungen alleine gelassen.
  5. Wiederaufbau Im Debug-Ordner Ihres Projekts sollte eine Binärdatei mit demselben Namen wie Ihr Projekt angezeigt werden.
5
Evan McClure

Oh, noch eine Sache Vergessen Sie nicht, Ihre Links zu notieren, bevor Sie sie ändern! Wenn Sie die systemweiten Einstellungen nicht ändern möchten, fügen Sie vor/usr/bin ein Verzeichnis in PATH hinzu (z. B. $ HOME/bin) und stellen Sie die Symlinks dort her :

cd /usr/bin
Sudo rm cc gcc c++ g++
Sudo ln -s gcc-4.2 cc
Sudo ln -s gcc-4.2 gcc
Sudo ln -s c++-4.2 c++
Sudo ln -s g++-4.2 g++

Sie sollten Ihre/usr/bin überprüfen und nach einer Datei wie "gcc-4.x" suchen. Wenn es nicht 4.0 oder 4.2 ist, ersetzen Sie die Versionsnummer, die Sie haben, durch die obigen Versionsnummern.

EDIT: Oh, ich habe auch Probleme mit der 64-Bit-Eclipse, wenn ich GCC-4.0 verwende. Der 32-Bit-Carbon funktioniert jedoch hervorragend.

3
Alex

Ich habe ein Programm namens gcc_select erhalten, das irgendwo eine prefs-Datei hat und es Ihnen ermöglicht, zwischen verschiedenen Versionen von gcc hin und her zu wechseln. 

Ich glaube, ich habe es von macports bekommen, aber ich bin mir nicht sicher.

1
Brian Postow

"Wie bereits erwähnt, kann dies einfach durch Hinzufügen des erforderlichen Flags in Eclipse erreicht werden.

Öffnen Sie dazu das Eigenschaftenfenster und gehen Sie zu "c/c ++ build"> "Einstellungen". In der Baumansicht auf der rechten Seite gehen Sie auf "Verschiedenes" von "MacOS X C Linker" und "GCC C Compiler" und fügen Sie in das Textfeld ~ "flags" ein: "-Arch i686" ".

Wenn Sie diese Route wählen, können Sie die Architektur Ihres Prozessors leicht überprüfen, indem Sie den Befehl aufrufen 

uname -p

im Bash-Terminal (d. h. Terminal.app) und Ändern von "-Arch i686" in "-Arch -i386".

1
Priestbait

Gehen Sie stattdessen zu Project -> Properties; Wählen Sie C/C++ Build -> Settings; Ändern Sie unter Tool Settings die Befehle C++ - Compiler und Linker von g ++ in g ++ - 4.0. Wenn Sie immer noch Fehler erhalten, ändern Sie den c-Compiler auch in gcc-4.0. Ich habe die Einstellungen des C-Compilers auch auf der sicheren Seite geändert. Alles funktioniert perfekt für mich.

0
user400418

Entfernen Sie einfach den "Debug" -Ordner aus Ihrem Projekt und führen Sie dann "Build project" aus.

 enter image description here

0

Hallo, ich habe Eclipse 32 Bit installiert und funktioniert soweit perfekt auf Mac Mountain Lion . Ich habe das Binary nicht gefunden, aber jetzt mit dem 32 Bit Eclipse kein Problem gefunden.

0
uplearnedu.com