Ошибка запуска OS X Eclipse C ++ - двоичный файл не найден - PullRequest
23 голосов
/ 19 сентября 2011

Я весьма обеспокоен, так как это не должно вызывать у меня такую ​​головную боль.Я скачал самые последние Eclipse Indigo и все CDT C ++ плагины для MAC OS X 10.7.1 /

При перезапуске после установки вышеупомянутых CDT плагинов я разработал простой 'Hello C 'приложение C ++ и попытался запустить приложение, "Запуск не удалось. Двоичный файл не найден".сообщение об ошибке.Я прочитал несколько исправлений, но ни один не сработал.Я попытался добавить флаг -arch i386 к командам компоновщика и компилятора, но все равно не повезло.

Кто-нибудь успешно запустил Eclipse C ++, работающий на 10.7.1 ??????Это поражает меня.Я могу просто написать ту же программу в VIM и скомпилировать ее с помощью терминала и выполнить просто отлично.Затмение не хочет играть долго.

Я буду глубоко признателен всем, кто может помочь !!!!!

РЕДАКТИРОВАТЬ: вывод компилятора

**** Build of configuration Debug for project HelloWorld ****
make all Building file: ../main.cpp
Invoking: GCC C++ Compiler g++ -I/Developer/SDKs/MacOSX10.6.sdk/usr/include -O0 -g3 -Wall -c -fmessage-length=0 -arch i386 -MMD -MP -MF"main.d" -MT"main.d" -o "main.o" "../main.cpp"
Finished building: ../main.cpp
Building target: libHelloWorld
Invoking: MacOS X C++ Linker g++ -arch i386 -dynamiclib -o "libHelloWorld" ./main.o
Finished building target: libHelloWorld
**** Build Finished ****

Ответы [ 15 ]

34 голосов
/ 07 марта 2012

Для тех из вас, кто новичок в программировании / затмении / IDE и получает ту же ошибку, но решения, описанные выше, не работают, я решил свой «Ошибка запуска. Двоичный файл не найден». Ошибка, выполнив следующее: Просто убедитесь, что вы собрали свой проект («Проект»> «Построить все») перед попыткой запуска или отладки. Я думал, что IDE будет строить, когда я нажму на кнопку debug или run, но это не так (очевидно, в ретроспективе). Урок новичка усвоен. После сборки вы должны увидеть папки «Binaries» и «Debug» в корневом каталоге проекта.

Я использовал OS X 10.7.3, если это имеет значение, хотя я предполагаю, что ошибка, которую я сделал, является фундаментальной, и любой дистрибутив Eclipse выдаст такую ​​же ошибку.

31 голосов
/ 07 октября 2012

Я использую Eclipse Juno с CDT на Macbook 2007, работающем под управлением Snow Leopard.У меня есть два симптома:

  1. Нет папки Binaries в Project Explorer и
  2. Ошибка запуска.Двоичная ошибка не найдена.

Я часами искал в Google ответ, достаточно долго, чтобы убедиться, что эти два признака указывают на любое количество проблем, о которых сообщалось в течение не совсем десяти лет.без адекватного разрешения.Это проблема прямо сейчас, потому что после десятилетия должно было быть более чем достаточно входных данных, чтобы обеспечить где-то одну процедуру устранения неполадок, которая шаг за шагом проводит пользователя по устранению всех возможных причин.

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

Это не должно быть так сложно решить.Особенно в таких случаях, как мой [но я не единственный], когда в представлении консоли отображается сборка без ошибок, но пользователь может скопировать двоичный файл [который Eclipse странно говорит, что он не может найти] на рабочий стол и запустить его безлюбые проблемы из сеанса Finder или сеанса bash-терминала.

Все это, похоже, довольно решительно указывает на отсутствие адекватных индикаторов в двоичном парсере Mach0 64, которые должны быть разработаны, чтобы сообщить нам точно что ему нужно, чего он не видит .

По общему признанию, это усугубляется в случае с такими MacBook, как мой, на которых установлена ​​64-битная ОС [Snow Leopard] на 64-битном процессоре, которыйпроизводитель, к сожалению, подкован с 32-битным загрузочным ядром.Но, предупреждаю, я уже попробовал ключ -arch i386 g ++ и перекомпоновку g ++ в g ++ - 4.0 без каких-либо изменений симптомов.

ADDENDUM ADDED 10/07/2012:

Я добавляю этот контрольный список в надежде прояснить Путь для несомненно многих других, которые зададут этот вопрос в ближайшие годы.Этот путь отражает то, что я считаю необходимым при использовании Eclipse Juno с Mac под управлением Snow Leopard:

1) Перейдите в «Настройки» -> «C / C ++ -> Мастер создания нового CDT» и в разделе «Предпочтительные наборы инструментов» убедитесь, чтовсе типы исполняемых проектов установлены на MacOSX GCC.

2) Это важная персона.Мне удалось получить папку Binaries в Project Explorer, и, следовательно, я смог запустить проект после его создания, используя имя проекта, которое не содержит точек ['.'].Об этом я узнал из другого ответа, отредактированного через несколько часов после моего предыдущего сообщения.Это требование легко пропустить, поэтому оно распространено, особенно если у вас есть опыт работы с Eclipse, но только с другими языками, потому что учебники для других языковых плагинов [таких как PyDev или для Java] часто заставляют вас создавать проекты с точками в имени.Если вы разработали эту привычку с другими языками, избавьтесь от нее при использовании CDT для C / C ++.Однако предупредите, что на этот раз недостаточно просто щелкнуть правой кнопкой мыши и переименовать существующее имя проекта, не используя точек.Самый простой способ - удалить старый проект и создать новый с именем без точек.

3) Существует множество веб-сайтов, которые предупреждают вас о необходимости использования параметра компилятора -arch i386 или изменения ссылок.для / usr / bin / gcc и / usr / bin / g ++ указывать на gcc-4.0 и g ++ - 4.0 вместо gcc-4.2 и g ++ - 4.2.Я создал скрипт bash, чтобы облегчить переключение назад и вперед, и исследовал, было ли это необходимо.Это не было, по крайней мере, не с моим Macbook.Основываясь на том, что я прочитал на одном сайте от разработчика Mach-O, я подозреваю, что текущая версия Mach-0 64 работает в обе стороны.Что является хорошим следствием ...

4) В Свойствах проекта, а не в Настройках, перейдите в C / C ++ Build-> Settings и в разделе Binary Parser убедитесь, что проверен Mach-O 64 Parser.Убедитесь, что это, а не устаревший анализатор Mach-O, проверено.

5) На этом этапе после создания проекта в обозревателе проектов должно быть видно несколько вещей:

6) Теперь в папке проекта должна быть папка Binaries.

7) В этой папке Binaries теперь должен находиться ваш исполняемый файл. Он должен иметь [x86_64 / le] рядом с ним, если, как и я, ваш Mac эффективно 32-битный. Сейчас не самое подходящее время, чтобы вдаваться в запутанную тему того, является ли ваш Mac эффективным 32-битным или 64-битным. Если вы не знаете, а многие этого не делают, потому что Apple все это путает, посмотрите небольшое приложение, которое можно загрузить с http://www.ahatfullofsky.comuv.com/English/Programs/SMS/SMS.html и которое расскажет вам, что такое правда. Это бесплатно, но «цена» заключается в том, что вы должны прокручивать рекламные объявления вверху страницы, отражающие политический настрой программиста.

10 голосов
/ 07 декабря 2012

на mac:

  1. Убедитесь, что у вас установлен xcode.Проверьте это, написав "info g ++", вы должны увидеть правильную информацию о компиляторе.

  2. Создайте свой проект.

  3. Перейдите в папку вашего проекта.Вы должны увидеть исполняемый файл в папке отладки или реализации, в зависимости от конфигурации вашего здания.Если вы нажмете на исполняемый файл d-click, вы увидите результат на терминале.

  4. Назад к Ecliipse, из Run / Run Configurations ... и затем перейдите к папке, которую выИмея исполняемый файл - тот, который вы уже нашли - вы также можете изменить конфигурацию сборки в этом окне, как вы хотите.И сделайте сборку автоматической для каждого запуска.

  5. Запустите снова, это должно работать.

Удачи!

7 голосов
/ 30 ноября 2012

У меня была такая же проблема, затем я нашел решение на этом сайте .Позвольте мне вкратце объяснить:

  1. Создайте свой проект на C ++,
  2. Посмотрите свойства проекта (⌘I),
  3. Выберите анализатор Mach-O в двоичных свойствах,
  4. Запишите свои коды,
  5. Не забудьте построить свой проект (⌘B) перед запуском.
4 голосов
/ 20 сентября 2011

Вы должны изменить настройки вашего проекта, чтобы создать исполняемый файл вместо динамической библиотеки:

Invoking: MacOS X C++ Linker g++ -arch i386 <b>-dynamiclib -o "libHelloWorld"</b> ./main.o`

Перейти к свойствам проекта -> C / C ++ Build -> Settings -> Постройте артефакт и выберите Исполняемый файл в первом раскрывающемся списке.

2 голосов
/ 14 июня 2018

Я использую Eclipse Oxygen, и следующая проблема решена:

Eclipse Oxygen

Щелкните правой кнопкой мыши по своему проекту и перейдите к properties . Перейдите к C / C ++ Build> Редактор цепочек инструментов и выберите MacOSX GCC в Текущий набор инструментов и Применить и закрыть .

Создайте свой проект с помощью CMD + B и запустите его.

2 голосов
/ 12 мая 2016

Если вы можете успешно построить , но при попытке запустить его получите сообщение об ошибке:

enter image description here

Возможным решением может быть добавление новогоконфигурация с полным путем к вашему двоичному выходному файлу

( Выполнить-> Выполнить настройку ...-> Главное-> Приложение C ++ ):

enter image description here

2 голосов
/ 11 июля 2012

Если имя вашего проекта содержит «.»(точка), двоичный файл не будет сгенерирован на строительном проекте.Удалите все "." (Точки) из имени проекта и перестройте его или попробуйте создать новый проект.

Удачного кодирования!

2 голосов
/ 29 января 2012

У меня была такая же проблема. Ответ может быть трудно найти, поскольку проблема «двоичного файла не найдена» возникала несколько раз, с различными причинами и решениями (выбор 64-разрядного анализатора и т. Д.).

Оказывается, что в моем случае исправление было простым: вам нужно сделать ручную сборку, только один раз, для каждого нового проекта, который вы создаете. После этого работает как обычно.

Подробности: использование новой свежей установки Eclipse Indigo Service Release 1 в Mac OS 10.7.2.

1 голос
/ 15 апреля 2012

Я решил похожую проблему с Eclipse, создав «Конфигурацию запуска». Я использую выпуск Eclipse Indigo на OSX Lion с CDT (среда разработки C / C ++). Я нашел возможность создать новую конфигурацию запуска в Project-> Properties-> Run / Debug Settings.

Я столкнулся с этой проблемой после создания и создания пустого «Hello World Ansi C Autotools Project». Процесс сборки создал рабочий исполняемый файл как src / a.out. Я мог успешно запустить a.out из терминала, но Eclipse не понимал, что это исполняемый файл для моего проекта, пока я не создал конфигурацию запуска, указывающую на него. Как только я это сделал, я смог запустить a.out как обычно, используя зеленую кнопку запуска.

...