32/64 битные проблемы с Eclipse CDT в Ubuntu - PullRequest
0 голосов
/ 15 января 2011

Я только недавно начал использовать Linux на своем ПК, и я пытаюсь начать изучать OpenGL.Я использую последнюю версию Eclipse CDT в качестве своей IDE, и моя система - Ubuntu 10.10, 64-битная версия.

Проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда я пытаюсь запустить сборку из IDE, я получаю сообщение об ошибке «Launch Failed. Binary Not Found».

Я много смотрел в интернете, но до сих пор не могу решить проблему.Я точно знаю, что бинарный файл собран, его можно запустить из окна терминала.Согласно сообщениям, которые я видел, проблема заключается в том, что Eclipse пытается запустить 32-разрядный двоичный файл, но в 64-разрядной системе GCC 4.4.5 по умолчанию использует 64-разрядные двоичные файлы.* Edit * Это , где я собрал вышеуказанную информацию

Я видел много информации об использовании флага -m32 в make-файлах, но затем я все еще получаю следующий вывод в Eclipse:

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

Я хотел бы знать, как заставить Eclipse запускать 64-разрядные двоичные файлы или правильно скомпилировать Eclipse 32-разрядные двоичные файлы.

1 Ответ

0 голосов
/ 16 января 2011

(я смог воспроизвести описанную вами ошибку, поэтому мой ответ основан на «обратном инжиниринге» ошибки).

В панели проектов eclipse щелкните проект правой кнопкой мыши и перейдите в «Свойства». В разделе C/C++ Build -> Settings перейдите на вкладку Binary Parsers и убедитесь, что установлен флажок Elf Parser. (Я не уверен, должен ли он быть единственным проверенным парсером).

Кстати, вы можете проверить класс вашего двоичного файла, используя readelf -h myBinary.o и посмотрев в поле Class.

Что касается запуска 32-разрядного двоичного файла, возможно, этот пост полезен: http://stefaanlippens.net/32bit_executable_on_64bit_machine

...