it-swarm.com.ru

Ошибка запуска OS X Eclipse C++ - двоичный файл не найден

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

После перезапуска после установки вышеупомянутых плагинов CDT я разработал простое приложение на языке c ++ 'hello world' и попытался запустить приложение: «Ошибка запуска. Двоичный файл не найден». сообщение об ошибке. Я прочитал несколько исправлений, но ни одно из них не сработало. Я попытался добавить флаг -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 ****
22
5k1zk17

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

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

32
Nate

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

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

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

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

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

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

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

ДОБАВЛЕНИЕ ДОБАВЛЕНО 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 и в разделе «Двоичные парсеры» убедитесь, что установлен парсер Mach-O 64. Убедитесь, что это, а не устаревший анализатор 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 который скажет вам, что такое истина. Это бесплатно, но «цена» заключается в том, что вы должны прокручивать рекламные объявления вверху страницы, отражающие политический настрой программиста.

31
istlota

на Mac:

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

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

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

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

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

Удачи ! 

10
telcom_un

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

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

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

Invoking: MacOS X C++ Linker g++ -Arch i386 -dynamiclib -o "libHelloWorld" ./main.o`

Перейдите в свойства проекта -> C/C++ Build -> Settings -> Build artifact и выберите Executable в первом выпадающем списке.

4
Antonio Pérez

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

 enter image description here

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

(Run-> Run Configuration ...-> Main-> C++ Application):

 enter image description here

2
0x8BADF00D

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

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

2
Sushant Kr

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

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

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

2
Harrison Brace

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

 Eclipse Oxygen

Щелкните правой кнопкой мыши по вашему проекту и перейдите к properties. Перейдите к C/C++ Build> Tool Chain Editor и выберите MacOSX GCC в Current toolchain и Apply and Close.

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

1
Maihan Nijat

Я решил аналогичную проблему с 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 как обычно, используя зеленую кнопку запуска.

1
Kevin Olree

У меня была такая же проблема, даже когда я установил артефакт на исполняемый файл. Это было связано с тем, что параметр общей библиотеки был отмечен, и это приводит к созданию dylib, даже если вы указали исполняемый файл. 

0
Ryan Page

У меня была похожая проблема, но код был другим. В файле File.h обязательно

virtual ~Destructor () {}; //Don't forget Curly braces {}

Выше оператор показывает деструктор initialized () и определен с помощью фигурных скобок {}. В моем коде я забыл определить деструктор. Надеюсь это поможет

0
Sdembla

У меня возникла та же проблема, поэтому я немного поиграл и обнаружил, что если я нажму на кнопку «профиль» (зеленый значок воспроизведения с маленькими часами под ним), справа от кнопки «запустить», мой Программа запустится при следующем нажатии кнопки «Выполнить».

Я на самом деле не знаю, что это сделало, но это позволило мне запустить код.

если кто-нибудь знает, почему это помогло, и является ли это фактическим решением или нет, не стесняйтесь relpy!

0
JoeCool

Я запускаю это, установив Тип построителя в Внутренний построитель на вкладке C/C++ Build , в диалоговом окне свойств проекта.

0
Gabby Moore

Независимо от того, какой подход использовать для решения этой проблемы в вашем рабочем пространстве, эта проблема, казалось, стала родной для проекта, который я создал. Ни использование аргументов, ни проверка версии gcc для компоновки не работали. Я нашел интуитивное решение. Вот оно: к ошибке «... бинарный недоступен ...». Выполните следующие действия: (помните, что следующие шаги выполняются после того, как вы выбрали один из указанных выше маршрутов, и ни один из них не решил проблему.

1.) удалить все - проект и файлы. 2.) Создать новый проект и исходные файлы 

0
Nirmal