Проект 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.
Если у кого-то есть лучшее решение, пожалуйста, сообщите.
Это случилось со мной, и я нашел решение, посмотрите, работает ли это для вас:
После того, как вы создали свой проект со значком молотка:
- выберите "Выполнить".
- Запустите конфигурации.
- Выберите "Приложение C++".
- Нажмите на значок "Новая конфигурация запуска" в левом верхнем углу открытого окна.
- Выберите "Обзор" в приложении C/C++.
- Перейдите в папку, где вы изначально создали свой проект.
- Войдите в папку Debug.
- Нажмите на двоичный файл с тем же именем, что и проект.
- Выберите "ОК".
- Нажмите "Применить", чтобы подтвердить ссылку, которую вы только что установили.
- Закройте это окно.
После этого вы сможете запускать проект столько, сколько захотите.
Надеюсь, это работает для вас.
На Mac: если у вас также есть подобная проблема, как упомянуто выше Ненадом Булатовичем, вам нужно изменить двоичные парсеры.
Нажмите Ctrl + I, чтобы открыть свойства (или щелкните правой кнопкой мыши свой проект и выберите свойство)
Убедитесь, что вы выбрали Mach-O 64 Parser.
Сначала я должен был нажать маленькую кнопку со стрелкой, которая открывает меню, содержащее "Запустить конфигурации",
затем в следующем окне я должен был нажать "Приложение 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
связаны против).
Моему параметру запуска было присвоено значение "Выполнить / Отладка -> Запуск", для параметра "Запустить текущий, в противном случае последний" следующим образом (см. Справа внизу):
Если бы я имел Main
Проект выбран, все будет работать нормально: будет запущен основной проект. Если бы я имел Library
Проект выбран1, он потерпит неудачу с сообщением об ошибке, выданным OP. Казалось, причина была в следующем: так как у меня было Library
Когда проект выбран, сканер PE будет сканировать двоичные файлы в проекте, чтобы определить, можно ли запускать какие-либо из них, и поскольку сканирование не удалось из-за этой ошибки, появилось сообщение об ошибке, прежде чем он получил "Запустить ранее запущенное приложение".
Я мог бы обойти это путем:
- Убедитесь, что проект, который я хотел запустить, был выбран, или...
- Замена компиляторов на те, которые предоставили DWARF информацию, которую Eclipse может проанализировать без сбоев, или...
- Выбор "Всегда запускать ранее запущенное приложение" в настройках "Запуск / отладка" - хотя это может быть не ваш предпочтительный режим работы.
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 при запуске кода. Невыполнение этого условия приведет к ошибке запуска двоичного файла не найден.
Ссылка на видео ниже иллюстрирует эти шаги более подробно:
- Создать пустой проект
- Выберите компилятор Linux Gcc
- Щелкните правой кнопкой мыши по проекту и выберите "исходную папку".
- Назовите это "SRC"
- Щелкните правой кнопкой мыши на папке src и выберите "исходный файл".
- Начать кодирование
- Сохранить проект
- Построить проект
- Запустить проект