2011-01-15 3 views
0

Ich habe gerade angefangen, Linux auf meinem PC laufen zu lassen und ich versuche OpenGL zu lernen. Ich benutze die neueste Version von Eclipse CDT als meine IDE, und mein System ist Ubuntu 10.10, 64-Bit-Version.32/64 Bit Probleme mit Eclipse CDT auf Ubuntu

Das Problem, das ich habe, ist, dass, wenn ich versuche, einen Build aus der IDE zu starten, bekomme ich die Fehlermeldung "Starten fehlgeschlagen. Binär nicht gefunden."

Ich habe viel im Internet herumgeschaut, aber ich kann das Problem immer noch nicht lösen. Ich weiß für eine Tatsache, dass das Binary gebaut wird, es kann von einem Terminalfenster aus ausgeführt werden. Laut Posts, die ich gesehen habe, ist das Problem, dass Eclipse versucht, eine 32-Bit-Binärdatei auszuführen, aber GCC 4.4.5 standardmäßig 64-Bit-Binärdateien auf einem 64-Bit-System. * Edit * This ist, wo ich die oben genannten Informationen gesammelt

Ive eine Menge Informationen gesehen über die -m32 Flagge in Makefiles verwenden, aber dann noch die folgende Ausgabe in Eclipse I erhalten:

make all 
g++ -o HelloWorld2 main.o 
/usr/bin/ld: i386 architecture of input file `main.o' is incompatible with i386:x86-64 output 
/usr/bin/ld: final link failed: Invalid operation 
collect2: ld returned 1 exit status 
make: *** [HelloWorld2] Error 1 

Was Ich würde gerne wissen, wie man entweder Eclipse zum Starten der 64-Bit-Binärdateien oder Eclipse korrekt 32-Bit-Binärdateien kompilieren lassen kann.

+0

Ist Ihr JDK 64-Bit? – trojanfoe

+0

Ja, sieht so aus. – waffleShirt

Antwort

0

(Ich konnte den Fehler, den Sie beschreiben, reproduzieren, daher basiert meine Antwort auf dem 'Reverse-Engineering' des Fehlers).

Klicken Sie im Bereich der Eclipse-Projekte mit der rechten Maustaste auf das Projekt und wählen Sie "Eigenschaften". Klicken Sie unter C/C++ Build ->Settings auf die Registerkarte Binary Parsers, und vergewissern Sie sich, dass Elf Parser aktiviert ist. (Ich bin mir nicht sicher, ob es der einzige überprüfte Parser sein muss).

Btw, können Sie die Klasse Ihrer Binärdatei mit readelf -h myBinary.o überprüfen und Blick auf die Class Feld.

läuft In Bezug auf die 32-Bit-Binär-, vielleicht dieser Beitrag ist hilfreich: http://stefaanlippens.net/32bit_executable_on_64bit_machine

+0

Vielen Dank, ich kann jetzt die Anwendungen starten und debuggen und ich muss nur einige einfache Optionen auswählen und alles funktioniert gut. Ich muss noch in die Kompilierung von 32-Bit-Binärdateien schauen, aber jetzt habe ich genug, um mit der Codierung zu beginnen. – waffleShirt