“Start fehlgeschlagen. Binärdatei nicht gefunden. “Snow Leopard- und Eclipse C / C ++ IDE-Problem
Keine Frage, ich habe gerade im Internet nach einer Lösung für dieses Problem gesucht und dachte, ich würde sie mit den guten Leuten von SO teilen. Ich werde es in einfachen Worten ausdrücken, damit es für Neulinge zugänglich ist. :) (Entschuldigung, wenn dies der falsche Ort ist - versuche nur, hilfreich zu sein.)
Dieses Problem tritt bei fast jedem Benutzer von OS X Snow Leopard auf, der versucht, die Eclipse C / C ++ - IDE zu verwenden, ist jedoch besonders ärgerlich für die Personen (wie mich), die die Eclipse C / C ++ - IDE in Leopard verwendeten und nicht arbeiten konnten mit Eclipse nicht mehr, als sie aufgerüstet wurden. Das Problem tritt auf, wenn Benutzer ihre Software erstellen / kompilieren / verknüpfen. Sie erhalten den folgenden Fehler:
Start fehlgeschlagen. Binär nicht gefunden.
Außerdem ist der Zweig "Binärdateien" im Projektfenster auf der linken Seite einfach nicht vorhanden.
DAS PROBLEM: GCC 4.2 (die GNU Compiler Collection), die mit Snow Leopard geliefert wird, kompiliert Binärdateien standardmäßig in 64-Bit. Leider versteht der von Eclipse verwendete Linker keine 64-Bit-Binärdateien. Es liest 32-Bit-Binärdateien. Möglicherweise gibt es hier andere Probleme, aber kurz gesagt, sie führen dazu, dass keine Binärdatei generiert wird, zumindest keine, die Eclipse lesen kann, was bedeutet, dass Eclipse die Binärdateien nicht findet. Daher der Fehler.
Eine Lösung besteht darin, beim Erstellen der Datei ein -arch i686-Flag hinzuzufügen, die Datei jedoch jedes Mal manuell zu erstellen, was ärgerlich ist. Zum Glück enthält Snow Leopard auch GCC 4.0, das standardmäßig in 32 Bit kompiliert wird. Eine Lösung besteht darin, dies lediglich als Standard-Compiler zu verknüpfen. So habe ich es gemacht.
DIE LÖSUNG: Die GCCs befinden sich in / usr / bin, was normalerweise ein versteckter Ordner ist. Sie können ihn also nicht im Finder sehen, es sei denn, Sie teilen dem System ausdrücklich mit, dass Sie versteckte Ordner sehen möchten. Was Sie tun möchten, ist, in den Ordner / usr / bin zu wechseln und den Pfad zu löschen, der den GCC-Befehl mit GCC 4.2 verknüpft, und einen Pfad hinzuzufügen, der den GCC-Befehl mit GCC 4.0 verknüpft. Mit anderen Worten, wenn Sie oder Eclipse versuchen, auf GCC zuzugreifen, soll der Befehl an den Compiler gesendet werden, der standardmäßig 32 Bit enthält, damit der Linker die Dateien lesen kann. Wir möchten nicht, dass es an den Compiler geht, der in 64 Bit kompiliert.
Gehen Sie dazu am besten zu Anwendungen / Dienstprogramme und wählen Sie die App mit dem Namen Terminal aus. Eine Eingabeaufforderung sollte erscheinen. Es sollte etwa "(Computername): ~ (Benutzername) $7$quot; (mit einem Leerzeichen für Ihre Benutzereingabe am Ende) lauten. Um die oben genannten Aufgaben zu erledigen, müssen Sie die folgenden Befehle eingeben, jeweils nacheinander VERBATIM eingeben und nach jeder einzelnen Zeile die Eingabetaste drücken.
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 bei mir werden Sie wahrscheinlich eine Fehlermeldung erhalten, die besagt, dass Sie nicht berechtigt sind, auf diese Dateien zuzugreifen. Versuchen Sie in diesem Fall 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 fordert Sie möglicherweise zur Eingabe eines Passworts auf. Wenn Sie sudo noch nie benutzt haben, drücken Sie einfach die Eingabetaste. Wenn das nicht funktioniert, probieren Sie das Passwort für Ihren Hauptadministrator.
ANDERE MÖGLICHE LÖSUNGEN Möglicherweise können Sie Build-Variablen in Eclipse eingeben. Ich habe es versucht, aber ich weiß nicht genug darüber. Wenn Sie es ausprobieren möchten, benötigen Sie wahrscheinlich das Flag -arch i686. Im Ernst, GCC-4.0 hat die ganze Zeit für mich gearbeitet, und ich sehe keinen Grund, jetzt zu wechseln. Es kann eine Möglichkeit geben, die Standardeinstellung für den Compiler selbst zu ändern, aber ich weiß noch einmal nicht genug darüber.
Hoffe, das war hilfreich und informativ. Gute Kodierung!