2009-11-03 14 views
23

Non una domanda, ho setacciato Internet per cercare una soluzione a questo problema e ho pensato di condividerlo con i bravi ragazzi di SO. Lo metterò in termini chiari in modo che sia accessibile ai newb. :) (Mi scuso se questo è il posto sbagliato - solo cercando di essere utile.)"Lancio non riuscito. Impossibile trovare il binario." Problema di Snow Leopard ed Eclipse C/C++ IDE

Questo problema si verifica con quasi tutti gli utenti OS X Snow Leopard che tenta di utilizzare l'IDE Eclipse C/C++, ma è particolarmente fastidioso per le persone (come me) che stavano usando l'IDE Eclipse C/C++ in Leopard e non erano più in grado di lavorare con Eclipse durante l'aggiornamento. Il problema si verifica quando gli utenti vanno a compilare/compilare/collegare il loro software. Ottengono il seguente errore:

Launch Failed. Binary Not Found.

Inoltre, il ramo "binari" nella finestra del progetto a sinistra è semplicemente inesistente.

IL PROBLEMA: è che GCC 4.2 (la raccolta del compilatore GNU) che viene fornito con Snow Leopard compila i binari in 64-bit per impostazione predefinita. Sfortunatamente, il linker utilizzato da Eclipse non comprende i binari a 64 bit; legge i binari a 32 bit. Potrebbero esserci altri problemi qui, ma in breve, culminano nel non generare alcun binario, almeno non uno che Eclipse può leggere, il che si traduce in Eclipse nel non trovare i binari. Quindi l'errore.

Una soluzione consiste nell'aggiungere un flag -arch i686 quando si crea il file, ma rendere manualmente il file ogni volta è fastidioso. Fortunatamente per noi, Snow Leopard viene fornito anche con GCC 4.0, che compila in 32 bit per impostazione predefinita. Quindi una soluzione è semplicemente collegarla come compilatore predefinito. Questo è il modo in cui l'ho fatto.

LA SOLUZIONE: I GCC sono in/usr/bin, che normalmente è una cartella nascosta, quindi non è possibile vederli nel Finder a meno che non si dica esplicitamente al sistema che si desidera vedere le cartelle nascoste. Ad ogni modo, ciò che si vuole fare è andare nella cartella/usr/bin ed eliminare il percorso che collega il comando GCC con GCC 4.2 e aggiungere un percorso che colleghi il comando GCC con GCC 4.0. In altre parole, quando tu o Eclipse provate ad accedere a GCC, vogliamo che il comando passi al compilatore che genera 32 bit per impostazione predefinita, in modo che il linker possa leggere i file; non vogliamo che vada al compilatore che compila in 64 bit.

Il modo migliore per farlo è accedere a Applicazioni/Utility e selezionare l'app chiamata Terminale. Un messaggio di testo dovrebbe apparire. Dovrebbe dire qualcosa come "(Nome computer): ~ (Username) $" (con uno spazio per l'input dell'utente alla fine). Il modo per eseguire le attività di cui sopra è immettere i seguenti comandi, inserendo ciascuno in sequenza VERBATIM e premendo Invio dopo ogni singola riga.

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++ 

Come me, probabilmente riceverai un errore che ti dice che non hai il permesso di accedere a questi file. In tal caso, provare invece i seguenti comandi:

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 potrebbe richiedere una password. Se non hai mai usato sudo prima, prova a premere Invio. Se ciò non funziona, prova la password per il tuo account di amministratore principale.

ALTRE POSSIBILI SOLUZIONI Potrebbe essere possibile immettere le variabili di compilazione in Eclipse. Ho provato questo, ma non ne so abbastanza. Se vuoi sentirlo, la bandiera di cui avrai probabilmente bisogno è -arch i686. Sul serio, GCC-4.0 ha funzionato per me tutto questo tempo, e non vedo alcun motivo per cambiare ora. Potrebbe esserci un modo per modificare l'impostazione predefinita per il compilatore stesso, ma ancora una volta, non ne so abbastanza.

Spero che questo sia stato utile e informativo. Buona codifica!

+1

Oh, un'altra cosa Non dimenticate di fare un disco dei tuoi link prima di cambiare! Se non si desidera modificare le impostazioni del sistema, aggiungere una directory in PATH prima di/usr/bin (ad esempio, $ HOME/bin) e creare i collegamenti simbolici lì Se si desidera tornare indietro, ecco il codice userei: 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 ++ Dovrai controllare/usr/bin e cercare un file simile a "gcc-4.x". Se non è 4.0 o 4.2, sostituisci i numeri di versione sopra per il numero di versione che hai. – Alex

+0

Dovresti metterlo sotto la tua domanda. – sbi

+0

Fatto, mi dispiace. :) – Alex

risposta

3

Oh, un'altra cosa Non dimenticare di registrare i tuoi collegamenti prima di cambiarli! Se non vuoi modificare le impostazioni del sistema, aggiungi una directory in PATH prima di/usr/bin (ad esempio, $ HOME/bin), e crea i link simbolici lì Se vuoi cambiare, ecco il codice che userò :

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++ 

Ti consigliamo di controllare il vostro/usr/bin e cercare un file che è come "gcc-4.x". Se non è 4.0 o 4.2, sostituisci i numeri di versione sopra per il numero di versione che hai.

EDIT: Oh, ho anche problemi con l'Eclipse in carbonio 64 bit se utilizzo GCC-4.0. Tuttavia, il Carbon a 32 bit funziona alla grande.

1

ho avuto un programma chiamato gcc_select che ha file da qualche parte a preferenze e vi permetterà di scambiare avanti e indietro tra più versioni di gcc ...

Penso che ho avuto da macports, ma non sono sicuro .

8

come accennato, questo può essere ottenuto semplicemente aggiungendo il flag necessario in eclissi.

per fare ciò aprire la finestra delle proprietà, quindi andare a "c/C++ build"> "impostazioni". Nella vista ad albero a destra vai a "miscellaneous" di "MacOS XC Linker" e "GCC C compiler" e aggiungi nella casella di testo etichettata ~ "flags": "-arch i686"

0

Invece vai su Progetto -> Proprietà; Seleziona C/C++ Build -> Impostazioni; In Impostazioni strumento cambia il compilatore C++ ei comandi Linker da g ++ a g ++ - 4.0. Se continui a ricevere errori, modifica anche il compilatore c su gcc-4.0. Ho cambiato le impostazioni del compilatore C anche dal lato della sicurezza. Tutto funziona perfettamente bene per me.

1

"come detto, ciò può essere ottenuto semplicemente aggiungendo la bandiera necessaria in Eclipse.

a farlo aprire la finestra Proprietà, poi vai a 'C/C++ costruire'> 'Impostazioni'. Nella struttura guarda a destra vai su "miscellaneous" di "MacOS XC Linker" e "GCC C compiler" e aggiungi nella casella di testo "~ flags": "-arch i686" "

Nota che, se segui questa strada , puoi facilmente controllare l'architettura del tuo processore invocando il comando

uname -p

nel terminale Bash (ad es. Terminal.app) e cambiando "-arch i686" in "-arch -i386".

5

Sono in esecuzione Mac OSX 10.6.8 e il mio Eclipse ha installato la toolchain Cross GCC. Quindi, ho fatto questo:

  1. Sotto Proprietà per il progetto, selezionare C/C++ Build -> Editor della catena di strumenti.
  2. Modificare la toolchain corrente da Cross GCC a MacOSX GCC.
  3. Ho anche modificato il generatore corrente su CDT Internal Builder. (Non sono sicuro se questo importava.)
  4. Ho lasciato tutto in Impostazioni da solo.
  5. Ricostruisci. Dovresti vedere un binario con lo stesso nome del tuo progetto nella cartella Debug del tuo progetto.
19

solo per i record, dopo aver lottato per 30 minuti, ho risolto questo problema su Lion (Mac 10.7) selezionando Mach-O 64 Parser e Elf Parser sotto: Menu Progetto -> Proprietà-> C/C++ Build- > Impostazioni-> scheda Analizzatore binario (prima scheda o terza scheda in Eclipse versione: 3.7.2) [mentre si ascolta la dolce fuga di gwen stefani lol].

+1

Stavo avendo lo stesso problema. Questo l'ha risolto per me! Molte grazie! –

+1

ha risolto anche il mio problema. grazie – superbly

+1

Mi ha aiutato molto e ho risolto il mio problema anche in MacOS 10.9.2 Versione Mavericks ed Eclipse: 3.7.2. Grazie! – Winston

18

ero stato sempre lo stesso messaggio di

Launch Failed. Binary Not Found.

perché non avevo capito che avevo bisogno di Ctrl-clic sulla cartella del progetto e selezionare "Build Project." Questo non deve essere fatto nei progetti Java in Eclipse, quindi altri principianti come me potrebbero avere lo stesso problema.

+1

Ottimo! : D ahah a volte non riesco a immaginare quanto fosse ovvia la soluzione – stratis

+0

buona osservazione. – solti

+1

Mi ha aiutato molto con MacOS 10.9.2 Mavericks ed Eclipse Versione: 3.7.2. Grazie! – Winston

0

Ciao ho installato Eclipse a 32 bit e funziona perfettamente finora su mac Mountain lion. Stavo ottenendo il file binario non trovato in fase di compilazione ma ora con Eclipse a 32 bit nessun problema.

0

Basta rimuovere la cartella "Debug" dal progetto e quindi eseguire "Genera progetto".

enter image description here

Problemi correlati