Проект Eclipse CDT построен, но "Ошибка запуска. Двоичный файл не найден"

Windows 7, Eclipse CDT, Juno Service Release 2, кросс-компилятор.

Проекты компилируют сгенерированные исполняемые файлы, но Eclipse их не видит; поэтому "Выполнить" не удается. Исполняемые файлы помещаются в каталог отладки. Двойной щелчок или вызов командной строки на скомпилированном исполняемом файле работает без проблем.

Как я могу решить это?

13 ответов

Решение

Я думаю, что нашел решение - должен быть выбран правильный двоичный парсер, чтобы Eclipse мог распознавать исполняемый файл:

Выберите проект, затем щелкните правой кнопкой мыши. Проект-> Свойства-> Сборка C/C++-> Настройки-> Двоичные парсеры, Парсер Windows PE.

Т.е. если используется компилятор Cygwin, то следует использовать синтаксический анализатор Cygwin.

Это сработало для меня, по крайней мере, для кросс-компилятора (как в Windows 7, так и в Ubuntu 12.04). В Linux я использую Elf parser.

Если у кого-то есть лучшее решение, пожалуйста, сообщите.

Это случилось со мной, и я нашел решение, посмотрите, работает ли это для вас:

После того, как вы создали свой проект со значком молотка:

  1. выберите "Выполнить".
  2. Запустите конфигурации.
  3. Выберите "Приложение C++".
  4. Нажмите на значок "Новая конфигурация запуска" в левом верхнем углу открытого окна.
  5. Выберите "Обзор" в приложении C/C++.
  6. Перейдите в папку, где вы изначально создали свой проект.
  7. Войдите в папку Debug.
  8. Нажмите на двоичный файл с тем же именем, что и проект.
  9. Выберите "ОК".
  10. Нажмите "Применить", чтобы подтвердить ссылку, которую вы только что установили.
  11. Закройте это окно.

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

Надеюсь, это работает для вас.

Просто выберите проект и нажмите CTRL + B.

На Mac: если у вас также есть подобная проблема, как упомянуто выше Ненадом Булатовичем, вам нужно изменить двоичные парсеры.

Нажмите Ctrl + I, чтобы открыть свойства (или щелкните правой кнопкой мыши свой проект и выберите свойство)

Убедитесь, что вы выбрали Mach-O 64 Parser.

Нажмите Ctrl +B, а затем вы можете использовать кнопку Run.

Сначала я должен был нажать маленькую кнопку со стрелкой, которая открывает меню, содержащее "Запустить конфигурации",

затем в следующем окне я должен был нажать "Приложение C/C++", а затем текстовую кнопку с зеленым + на нем

Затем я должен был нажать кнопку "Применить" и "Выполнить"

и затем затмение может запустить / отладить программу.:)

В моем случае это решение, чтобы исправить это. При создании проекта выберите MinGW GCC на панели "Наборы инструментов".

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

Как только проект создан, выберите файл проекта, нажмите Ctrl + B, чтобы построить проект. Затем нажмите Run и вывод должен быть напечатан на консоли.

Если у вас есть успешная сборка и появляется ошибка "Запустить двоичный файл не найден". Попробуйте проделать следующие шаги:

Нажмите "Выполнить" -> "Выполнить конфигурацию" -> "Приложение C/C++" -> нажмите "Отладка по имени_проекта" -> нажмите "Обзор" и выберите файл проекта -> Нажмите "ОК" -> под ним. Просмотрите двоичный файл (перейдите в рабочую область Eclipse и выберите файл проекта. -> Вы найдете два файла 1.Debug 2.Src -> Щелкните файл отладки -> Затем щелкните файл с именем вашего проекта и нажмите ОК) -> затем нажмите "Применить" и нажмите кнопку "Выполнить".

Это должно решить проблему

Это сработало для меня.

Перейдите в Project -> Properties -> Run/Debug Settings -> Нажмите на конфигурацию и нажмите "Edit", теперь откроется "Edit Configuration".

Нажмите "Search Project", выберите двоичный файл из "Binaries" и нажмите "ОК".

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

-> Двоичный файл создается после того, как вы выполните команду "Собрать все" или (Ctrl+B)

Что бы это ни стоило, у меня была эта проблема - и причиной была неверная информация DWARF 3 в двоичном файле в выбранном проекте (у которого не было никаких исполняемых двоичных файлов).

То, как это работает, было примерно так: у меня было два проекта Main а также Library, Main зависело от Library Project и первый имел исполняемый файл, в то время как последний только что создал статическую библиотеку (что Main связаны против).

Моему параметру запуска было присвоено значение "Выполнить / Отладка -> Запуск", для параметра "Запустить текущий, в противном случае последний" следующим образом (см. Справа внизу):

Настройки Run / Debug

Если бы я имел Main Проект выбран, все будет работать нормально: будет запущен основной проект. Если бы я имел Library Проект выбран1, он потерпит неудачу с сообщением об ошибке, выданным OP. Казалось, причина была в следующем: так как у меня было Library Когда проект выбран, сканер PE будет сканировать двоичные файлы в проекте, чтобы определить, можно ли запускать какие-либо из них, и поскольку сканирование не удалось из-за этой ошибки, появилось сообщение об ошибке, прежде чем он получил "Запустить ранее запущенное приложение".

Я мог бы обойти это путем:

  1. Убедитесь, что проект, который я хотел запустить, был выбран, или...
  2. Замена компиляторов на те, которые предоставили DWARF информацию, которую Eclipse может проанализировать без сбоев, или...
  3. Выбор "Всегда запускать ранее запущенное приложение" в настройках "Запуск / отладка" - хотя это может быть не ваш предпочтительный режим работы.

1 Обычно я не выбрал бы проект напрямую, конечно, он был бы выбран косвенно, потому что я работал в одном из исходных файлов, которые он содержал.

Мой опыт показывает, что после создания вашего проекта (CTRL+B), вам нужно создать конфигурацию запуска (или отладки) в Run или же Debug выпадающее меню из главной панели инструментов. Затем на главной странице нажмите

Search Project...

кнопка.

Это найдет все исполняемые файлы, которые вы создали, и отобразит их в диалоговом окне. Вы можете выбрать правильный, а затем нажмите Run (или

Попробовав все, что сработало, я дал разрешение на выполнение для затмения:

cd eclipse-installation-dir 
sudo chmod +x eclipse

Использование Eclipse Luna в Ubuntu 12.04 LTS.

У меня та же проблема на Eclipse 3.8.1. Для меня это помогло установить тип артефакта в исполняемый файл:

Щелкните правой кнопкой мыши по проекту -> Сборка C/C++ -> Настройки -> Артефакт сборки -> Тип артефакта: Исполняемый файл

Наконец, перестройка проекта произвела запись Binaries в Project Explorer.

Убедитесь, что имя папки не содержит расширение.c. Когда я удалил расширение.c в названии папки, оно работало автоматически.

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

Ссылка на видео ниже иллюстрирует эти шаги более подробно:

  1. Создать пустой проект
  2. Выберите компилятор Linux Gcc
  3. Щелкните правой кнопкой мыши по проекту и выберите "исходную папку".
  4. Назовите это "SRC"
  5. Щелкните правой кнопкой мыши на папке src и выберите "исходный файл".
  6. Начать кодирование
  7. Сохранить проект
  8. Построить проект
  9. Запустить проект

https://www.youtube.com/watch?v=wtyBvagV-_A

Другие вопросы по тегам