Подтвердить что ты не робот

Msgstr "Ошибка запуска. Binary Not Found." Проблема с Snow Leopard и Eclipse C/С++ IDE

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

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

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

Кроме того, ветвь "двоичные файлы" в окне проекта слева просто несуществует.

ПРОБЛЕМА: это то, что 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 бита.

Лучший способ сделать это - перейти к приложениям/утилитам и выбрать приложение под названием Terminal. Появится текстовое приглашение. Он должен сказать что-то вроде "(Имя компьютера): ~ (Имя пользователя) $" (с пробелом для ввода пользователем пользователя в конце). Чтобы выполнить указанные выше задачи, необходимо ввести следующие команды, введя каждый из них в последовательности VERBATIM и нажать enter после каждой отдельной строки.

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. Если это не сработает, попробуйте пароль для своей основной учетной записи администратора.

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

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

4b9b3361

Ответ 1

только для записей, после борьбы за 30 минут я решил эту проблему на льве (mac 10.7), выбрав Mach-O 64 Parser и Elf ​​Parser в разделе: Project Menu → Properties- > C/С++ Build- > Settings- > Вкладка Binary Parsers (первая вкладка или третья вкладка в Eclipse Version: 3.7.2) [при прослушивании сладкого побега gwen stefani lol].

Ответ 2

Я получал то же сообщение

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

потому что я не понял, что мне нужно щелкнуть по папке проекта и выбрать "Build Project". Это не нужно делать в проектах Java в Eclipse, поэтому другие новички, подобные мне, могут иметь одинаковую проблему.

Ответ 3

как уже упоминалось, это может быть достигнуто просто добавлением необходимого флага в затмение.

чтобы открыть окно свойств, затем перейдите в "c/С++ build" > "settings". В древовидном представлении справа перейдите к разделу "Разное" "MacOS X C Linker" и "Компилятор GCC C" и добавьте в текстовое поле с надписью "flags": "-arch i686"

Ответ 4

Я запускаю Mac OSX 10.6.8, а у моего Eclipse установлен набор инструментов Cross GCC. Итак, я сделал это:

  • В разделе "Свойства для проекта" выберите редактор C/С++ Build → Tool Chain.
  • Измените текущую инструментальную цепочку с Cross GCC на MacOSX GCC.
  • Я также сменил Current Builder на CDT Internal Builder. (Я не уверен, что это имело значение.)
  • Я оставил все вещи только в настройках.
  • Перестроить. Вы должны увидеть двоичный файл с тем же именем, что и ваш проект, в папке Debug вашего проекта.

Ответ 5

О, еще одна вещь Не забудьте сделать запись своих ссылок, прежде чем менять их! Если вы не хотите изменять системные настройки, добавьте каталог в PATH до /usr/bin (скажем, $HOME/bin) и создайте символические ссылки. Если вы хотите изменить назад, здесь код, который я бы использовал

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

Вы хотите проверить свой /usr/bin и искать файл, похожий на "gcc-4.x". Если это не 4.0 или 4.2, замените номера версий выше для номера версии, который у вас есть.

EDIT: О, у меня также есть проблемы с запуском 64-битного угольного Eclipse, если я использую GCC-4.0. Однако 32-битный Carbon отлично работает.

Ответ 6

У меня есть программа gcc_select, которая где-то имеет файл prefs и позволит вам переключаться между несколькими версиями gcc...

Я думаю, что получил его из macports, но я не уверен.

Ответ 7

", как уже упоминалось, это может быть достигнуто просто добавлением необходимого флага в затмение.

чтобы открыть окно свойств, затем перейдите в "c/С++ build" > "settings". В древовидном представлении справа перейдите к разделу "Разное" "MacOS X C Linker" и "Компилятор GCC C" и добавьте в текстовое поле с надписью "flags": "-arch i686" "

Обратите внимание, что если вы пройдете этот маршрут, вы можете легко проверить свою архитектуру процессора, вызвав команду

uname -p

в терминале Bash (т.е. Terminal.app) и сменив "-arch i686" на "-arch -i386".

Ответ 8

Вместо этого перейдите в Project → Properties; Выберите C/С++ Build → Settings; В разделе "Параметры инструмента" измените команды компилятора С++ и Linker с g++ на g++ - 4.0. Если вы все еще получаете какие-либо ошибки, измените компилятор c также на gcc-4.0. Я также изменил настройки компилятора C, чтобы быть в безопасности. Все работает отлично для меня.

Ответ 9

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

Ответ 10

Просто удалите папку "Отладка" из вашего проекта, а затем запустите "Проект сборки".

введите описание изображения здесь