Warum erhalte ich den Fehler "Nicht erkannter Emulationsmodus: 32" in Eclipse?

Wie kommt es, dass ich diesen Fehler bekomme, wenn ich mit dem Argument -m32 kompiliere?

nicht erkannter Emulationsmodus: 32

Kompiliere ich mit g++ auf einer x86_64 Maschine. Es geschieht in einem Projekt, aber nicht im anderen... Irgendwelche Hinweise?

Hinweis: Ich verwende Eclipse CDT, also ist dies vielleicht eine IDE-spezifische Gocha?

Rephrased Frage

Vielleicht wäre eine bessere Frage: Was ist die beste Methode zum Erstellen einer x86-Binärdatei in Eclipse, wenn sie auf einer x86_64-Maschine läuft?

Antwort auf "Warum erhalte ich den Fehler "Nicht erkannter Emulationsmodus: 32" in Eclipse? " 2 von antworten

In dem einen Projekt übergeben Sie versehentlich das -m to the linker accidentally. The GNU linker (ld) supports an -m option for specifying the emulation mode. An emulation consists of a linker script, output object file format and parameters for it - like the start address. Watch not to put an den Linker. Der GNU-Linker (ld) unterstützt eine -m-Option zur Angabe des Emulationsmodus. Eine Emulation besteht aus einem Linkerskript, ausgabeobjektdateiformat und Parametern dafür - wie die Startadresse. Achten Sie darauf, -m to LDFLAGS but to CXXFLAGS (C++ compiler flags) or CFLAGS (c compiler flags). nicht auf LDFLAGS, sondern auf CXXFLAGS (C++-Compilerflags) oder CFLAGS (c-Compilerflags) zu setzen.

Zum Beispiel unterstützt mein ld supports the emulation modes elf_i386 and i386linux, for generating ELF binaries and a.out binaries respectively. die Emulationsmodi elf_i386 und i386linux, zum Generieren von ELF-Binärdateien bzw. a.out-Binärdateien.

Es scheint, dass Sie in Eclipse -m32 in den optionen für die unblinkenden Linker angeben müssen, wenn sie in den Compileroptionen angegeben sind.

Die Fehlermeldung "Nicht erkannter Emulationsmodus: 32" erscheint, wenn Ihr Verweis auf einen Bibliothekspfad, der nicht existiert - das ist seltsam!