"Ошибка запуска. Двоичный файл не найден". Выпуск 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 работал для меня все это время, и я не вижу причин для переключения сейчас. Может быть способ изменить значение по умолчанию для самого компилятора, но еще раз, я не знаю достаточно об этом.
Надеюсь, что это было полезно и информативно. Хорошее кодирование!
10 ответов
Только для записей, после 30 минут борьбы я решил эту проблему на льве (Mac 10.7), выбрав Mach-O 64 Parser и Elf Parser в: Меню проекта -> Свойства->C/ C++ Build-> Настройки-> Двоичные парсеры вкладка (первая вкладка или третья вкладка в версии Eclipse: 3.7.2) [во время прослушивания сладкого побега gwen stefani lol ].
Я получаю то же сообщение
Ошибка запуска. Двоичный файл не найден.
потому что я не понял, что мне нужно было нажать Ctrl-клик по папке проекта и выбрать "Build Project". Этого не нужно делать в проектах Java в Eclipse, поэтому другие начинающие пользователи, такие как я, могут столкнуться с той же проблемой.
Как уже упоминалось, это может быть достигнуто простым добавлением необходимого флага в eclipse.
Для этого откройте окно свойств, затем перейдите в "c/ C++ build" > "Настройки". В древовидном представлении справа перейдите к "разному" из "MacOS X C Linker" и "GCC C compiler" и добавьте в текстовое поле "flags": "-arch i686"
Я использую Mac OSX 10.6.8, и на моем Eclipse был установлен набор инструментов Cross GCC. Итак, я сделал это:
- В разделе "Свойства" для проекта выберите "Построение C/C++" -> "Редактор цепочек инструментов".
- Измените текущий набор инструментов с Cross GCC на MacOSX GCC.
- Я также изменил Текущий компоновщик на CDT Internal Builder. (Я не уверен, что это имело значение.)
- Я оставил все вещи в настройках в покое.
- Перестроить. Вы должны увидеть двоичный файл с тем же именем, что и ваш проект, в папке Debug вашего проекта.
О, еще одна вещь, не забудьте сделать запись своих ссылок, прежде чем менять их! Если вы не хотите изменять общесистемные настройки, добавьте каталог в 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, замените номера версий выше на номер версии, которая у вас есть.
РЕДАКТИРОВАТЬ: О, у меня также есть проблемы с запуском 64-битного углеродного Eclipse, если я использую GCC-4.0. Тем не менее, 32-битный Carbon прекрасно работает.
"как уже упоминалось, это может быть достигнуто простым добавлением необходимого флага в eclipse.
Для этого откройте окно свойств, затем перейдите в "c/ C++ build" > "Настройки". В древовидном представлении справа перейдите к "разному" из "MacOS X C Linker" и "Компилятор GCC C" и добавьте в текстовое поле "flags": "-arch i686""
Обратите внимание, что если вы пойдете по этому пути, вы можете легко проверить архитектуру вашего процессора, вызвав команду
uname -p
в терминале Bash (т.е. Terminal.app) и изменив "-arch i686" на "-arch -i386".
У меня есть программа gcc_select, в которой есть файл prefs и который позволяет вам переключаться между несколькими версиями gcc...
Я думаю, что я получил это от Macports, но я не уверен.
Привет, я установил Eclipse 32 bit и отлично работает на Mac Mountain Lion. Я получал двоичный файл, не найденный при компиляции, но теперь с 32-битным Eclipse нет проблем.
Вместо этого перейдите в Project -> Properties; Выберите C/C++ Build -> Настройки; В разделе "Настройки инструмента" измените команды компилятора C++ и компоновщика с g ++ на g++-4.0. Если вы все еще получаете ошибки, измените компилятор c также на gcc-4.0. Я также изменил настройки компилятора C, чтобы быть в безопасности. У меня все отлично работает.