Почему в Eclipse появляется ошибка «Нераспознанный режим эмуляции: 32»? - PullRequest
3 голосов
/ 19 марта 2009

Почему я получаю эту ошибку при компиляции с аргументом -m32?

нераспознанный режим эмуляции: 32

Я компилирую с использованием g ++ на машине x86_64. Это происходит в одном проекте, но не в другом ... Любые намеки?

Примечание: Я использую Eclipse CDT, так что, возможно, это специфический для IDE гоча?

Перефразированный вопрос

Возможно, лучшим вопросом будет: каков наилучший метод построения двоичного файла x86 в Eclipse при работе на компьютере x86_64?

Ответы [ 2 ]

4 голосов
/ 20 марта 2009

Похоже, что в Eclipse вы должны указать -m32 в параметрах ошибочного компоновщика, если это указано в параметрах компилятора.

Сообщение об ошибке «Нераспознанный режим эмуляции: 32» появляется, когда вы ссылаетесь на несуществующий путь к библиотеке - что странно!

3 голосов
/ 19 марта 2009

В одном проекте вы случайно передаете компоновщик -m. Линкер GNU (ld) поддерживает опцию -m для указания режима эмуляции. Эмуляция состоит из сценария компоновщика, формата выходного файла объекта и параметров для него - например, начального адреса. Следите за тем, чтобы не ставить -m в LDFLAGS, а в CXXFLAGS (флаги компилятора C ++) или CFLAGS (флаги компилятора c).

Например, my ld поддерживает режимы эмуляции elf_i386 и i386linux для генерации двоичных файлов ELF и двоичных файлов a.out соответственно.

...