32/64 битные проблемы с Eclipse CDT на Ubuntu

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

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

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

Я видел много информации об использовании флага -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-разрядные двоичные файлы.


person waffleShirt    schedule 15.01.2011    source источник


Ответы (1)


(Мне удалось воспроизвести описанную вами ошибку, поэтому мой ответ основан на «обратном проектировании» ошибки).

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

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

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

person Itamar Katz    schedule 16.01.2011
comment
Большое спасибо, теперь я могу запускать и отлаживать приложения, и мне просто нужно выбрать несколько простых параметров, и все работает нормально. Мне все еще нужно заняться компиляцией 32-битных двоичных файлов, но пока у меня достаточно, чтобы начать кодировать. - person waffleShirt; 17.01.2011