Мой Eclipse CDT продолжает жаловаться: «make: *** нет правила для достижения цели all», когда я пытаюсь скомпилировать фрагмент кода ниже:
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!!!" << endl; // prints Hello World!!!
return 0;
}
Кто-нибудь знает, как это решить?
Я прочитал пост с похожим названием:
make: *** Нет правила для создания цели `all ‘. Стоп. Ошибка затмения
Но ни один из этих ответов не помогает …
Большое спасибо!
Вам нужно изменить настройки вашего проекта, чтобы Eclipse-CDT управлял вашими Make-файлами для вас.
«all» — это настройка по умолчанию, хотя вкладка Behaviour-> Build (Incremental build) не имеет переменных. Я решил как
Выберите Project-> Properties в строке меню.
Нажмите C / C ++ Build слева в появившемся диалоговом окне.
В C / C ++ Build -> Builder Settings выберите Внутренний построитель (вместо Внешнего построителя).
Меня устраивает.
Я только что решил эту проблему для себя; даже ссылался на этот вопрос.
Я предполагаю, что вы не написали правило «все», на которое жалуется Eclipse. Если это так, выполните следующие действия:
Это позволяет Eclipse знать, что вы не пытаетесь использовать цель make под названием «all». По какой-то причине это по умолчанию.
У вас есть 2 случая
- Выберите Project-> Properties в строке меню.
- Нажмите C / C ++ Build слева в появившемся диалоговом окне.
- Отключить создание make-файла автоматически -> На вкладке «Настройки Builder» справа, проверьте и убедитесь, что «Build location»
правильно (это место, где ваш Makefile)
- Выберите Project-> Properties в строке меню.
- Нажмите C / C ++ Build слева в появившемся диалоговом окне.
- Включить генерацию make-файла автоматически
Я советую вам создать Makefile самостоятельно
Иногда, если вы делаете цель с помощью make files, дважды проверяйте, что все файлы c названы правильно с правильной структурой файла.
Project -> Clean -> Clean all Projects, а затем Project -> Build Project сработал для меня (я автоматически отключил генерацию make-файла и затем перепроверил его перед этим). Это было для проекта AVR (микропроцессорное программирование) через плагин AVR CDT в затмении Juno, хотя.