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

OS X Eclipse С++ Launch Failed - двоичный файл не найден

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

После перезагрузки после установки вышеперечисленных плагинов CDT я разработал простое приложение "hello world" С++ и попытался запустить приложение "Запуск неудачен. Binary not found". сообщение об ошибке. Я прочитал несколько исправлений, но никто не работал. Я попытался добавить флаг -arch i386 в компоновщик и команды компилятора, но все равно не повезло.

Кто-нибудь успешно получил Eclipse С++, работающий на 10.7.1?????? Это дует мой разум. Я могу просто написать одну и ту же программу в VIM и скомпилировать ее просто через терминал и выполнить просто отлично. ECLIPSE НЕ ХОЧЕТ ИГРАТЬ.

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

EDIT: выход компилятора

**** 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 ****
4b9b3361

Ответ 1

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

  • Нет папки Binaries в Project Explorer и
  • Не удалось запустить Launch. Ошибка двоичного не найдена.

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

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

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

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

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

ДОБАВЛЕНИЕ ДОБАВЛЕНО 10/07/2012:

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

1) Перейдите в Preferences- > C/С++ → Мастер создания CDT Project и в разделе Preferred Toolchains убедитесь, что для всех типов исполняемых проектов установлено значение MacOSX GCC.

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

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

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

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

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

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

Ответ 2

Для тех из вас, кто не знаком с программированием /eclipse/IDE и получает ту же ошибку, но вышеприведенные решения не работают, я решил, что мой "Launch Failed. Binary Not Found". выполните следующие действия: просто убедитесь, что вы создали свой проект ( "Проект" > "Создать все" ), прежде чем пытаться запустить или отладить. Я думал, что IDE будет делать это здание, когда я нажму кнопку debug или run, но это не так (очевидно, ретроспективно). Урок урока. После создания вы должны увидеть папку "Binaries" и "Debug" в корневой директории проекта.

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

Ответ 3

на mac:

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

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

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

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

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

Удачи!

Ответ 4

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

  • Создайте свой проект С++,
  • Посмотрите на свойства проекта (⌘I),
  • Выберите парсер Mach-O под бинарными свойствами,
  • Введите ваши коды вниз,
  • Не забудьте создать проект (⌘B) перед запуском.

Ответ 5

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

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

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

Ответ 6

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

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

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

Ответ 7

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

Счастливое кодирование!

Ответ 8

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

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

Ответ 9

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

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

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

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

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

Ответ 10

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

Ответ 11

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

Ответ 12

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

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

Ответ 13

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

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

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

Ответ 14

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

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

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