«Запуск не удался. Двоичный код не найден ». Проблема Snow Leopard и Eclipse C / C ++ IDE

Не вопрос, я просто искал интернет в поисках решения этой проблемы и думал, что поделюсь им с хорошими людьми из SO. Я изложу это простыми словами, чтобы оно было доступно новичкам. :) (Извиняюсь, если это не то место - просто пытаюсь помочь.)

Эта проблема возникает практически с любым пользователем OS X Snow Leopard, который пытается использовать Eclipse C / C ++ IDE, но особенно раздражает людей (таких как я), которые использовали Eclipse C / C ++ IDE в Leopard и не смогли работать с затмением больше, когда они обновились. Проблема возникает, когда пользователи идут, чтобы собрать / скомпилировать / связать свое программное обеспечение. Они получают следующую ошибку:

Ошибка запуска. Двоичный файл не найден.

Кроме того, ветка «binaries» в окне проекта слева просто отсутствует.

ПРОБЛЕМА: это то, что GCC 4.2 (коллекция компиляторов GNU), поставляемая с Snow Leopard, компилирует двоичные файлы в 64-битные по умолчанию. К сожалению, компоновщик, который использует Eclipse, не понимает 64-битные двоичные файлы; он читает 32-битные двоичные файлы. Здесь могут быть и другие проблемы, но вкратце они приводят к тому, что двоичный файл не генерируется, по крайней мере, тот, который Eclipse не может прочитать, что приводит к тому, что Eclipse не находит двоичные файлы. Отсюда и ошибка.

Одним из решений является добавление флага -arch i686 при создании файла, но создание файла вручную каждый раз раздражает. К счастью для нас, Snow Leopard также поставляется с GCC 4.0, который по умолчанию компилируется в 32 бита. Поэтому одним из решений является просто связать это как компилятор по умолчанию. Я так и сделал.

РЕШЕНИЕ: GCC находятся в / usr / bin, который обычно является скрытой папкой, поэтому вы не сможете увидеть ее в Finder, если вы явно не скажете системе, что хотите видеть скрытые папки. В любом случае вам нужно перейти в папку / usr / bin и удалить путь, связывающий команду GCC с GCC 4.2, и добавить путь, связывающий команду GCC с GCC 4.0. Другими словами, когда вы или Eclipse пытаетесь получить доступ к GCC, мы хотим, чтобы команда перешла к компилятору, который по умолчанию встраивает 32-битные данные, чтобы компоновщик мог читать файлы; мы не хотим, чтобы он шел к компилятору, который компилируется в 64 бита.

Лучший способ сделать это - перейти в Приложения / Утилиты и выбрать приложение под названием Терминал. Текстовое приглашение должно появиться. В нем должно быть что-то вроде «(имя компьютера): ~ (имя пользователя) $» (с пробелом для ввода пользователя в конце). Способ выполнения вышеуказанных задач состоит в том, чтобы ввести следующие команды, вводя каждую из них в последовательности VERBATIM и нажимая клавишу ввода после каждой отдельной строки.

cd /usr/bin
rm cc gcc c++ g++
ln -s gcc-4.0 cc
ln -s gcc-4.0 gcc
ln -s c++-4.0 c++
ln -s g++-4.0 g++

Как и я, вы, вероятно, получите сообщение об ошибке, из-за которого у вас нет прав доступа к этим файлам. Если это так, попробуйте следующие команды:

cd /usr/bin
sudo rm cc gcc c++ g++
sudo ln -s gcc-4.0 cc
sudo ln -s gcc-4.0 gcc
sudo ln -s c++-4.0 c++
sudo ln -s g++-4.0 g++

Судо может попросить вас ввести пароль. Если вы никогда раньше не использовали sudo, попробуйте просто нажать Enter. Если это не сработает, попробуйте пароль для своей основной учетной записи администратора.

ДРУГИЕ ВОЗМОЖНЫЕ РЕШЕНИЯ Вы можете ввести переменные сборки в Eclipse. Я пробовал это, но я не знаю достаточно об этом. Если вы хотите это почувствовать, вам, вероятно, понадобится флаг -arch i686. По правде говоря, GCC-4.0 работал для меня все это время, и я не вижу причин для переключения сейчас. Может быть способ изменить значение по умолчанию для самого компилятора, но, опять же, я не знаю достаточно об этом.

Надеюсь, что это было полезно и информативно. Хорошее кодирование!