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

Make: *** Нет правила, чтобы сделать цель "все". Стоп. Ошибка Eclipse

Я только что загрузил комплект разработчика Eclipse CDT (87 МБ) для Windows. Я также установил MinGW и msys. Я также добавил это в PATH: C:\msys\1.0\bin; C:\mingw\bin. и после этого перезагрузился компьютер. Я проверил по типу "make -version" в cmd, и он работает.

Однако по какой-то причине я не могу скомпилировать мой проект C. Я не получаю двоичные файлы и получаю только следующие вещи в COnsole:

**** Build of configuration Default for project XXX ****

make all 
make: *** No rule to make target `all'.  Stop.

Может кто-нибудь мне поможет?

4b9b3361

Ответ 1

Для дальнейшего использования, если вы пытаетесь импортировать существующий проект с make файлом...

Это сообщение будет всплывать, если ваш make файл не имеет правила "все". При использовании опции "Создать файлы Makefile автоматически" следует позаботиться об этом автоматически. Если вам не нужны make файлы, сделанные для вас, у вас есть как минимум 3 простых варианта...

Вариант 1

Если вы не хотите использовать правило под этим именем, используйте решение twokats. Здесь уточнение.

  • Перейдите в Project Properties → C/С++ Build → вкладка Behavior.
  • Оставьте сборку (добавочную сборку).
  • Удалите "все" из текстового поля рядом с Build (Incremental Build).

Это позволяет Eclipse знать, что вы не пытаетесь использовать цель make, называемую "все". По какой-то причине это по умолчанию.

Вариант 2

Используйте что-то похожее на make файл Etiennebr. Обратите внимание: строка all: $(TARGET) - это правило, в котором Eclipse жалуется, что не может найти.

Вариант 3

Замените "все" на имя правила по вашему выбору и обязательно включите это правило в свой файл.

Ответ 2

Как раз для вашей справки, есть способ настроить параметры сборки CDT. У меня было это же сообщение об ошибке (хотя у я была есть цель make - просто не названа "все" ) и нашел это решение (для Galileo + CDT):

Щелкните правой кнопкой мыши свой проект и выберите Свойства. Появится диалоговое окно "Свойства", и вы увидите опцию C/С++ Build, где вы можете установить определенные параметры сборки. Выделите этот элемент и отобразится страница "Свойства". Выберите конфигурацию, которую вы хотите изменить, а затем в следующем разделе вы увидите две вкладки: Настройки Builder и Поведение. Это вкладка Поведение, которую вы хотите. В этом разделе вы можете установить настройки для параметров сборки и настроек рабочего места, включая указание целевого имени (по умолчанию - "все" ) или отключение автоматических сборок.

Это было невероятно полезно для меня, когда я начал использовать CDT. Мой исходный код отделен от области сборки, и до тех пор, пока я не настроюсь, никаких make файлов не существует. Когда я настроен, мое целевое имя по умолчанию явно "по умолчанию", а не "все" . Было очень неприятно, что Eclipse сообщал об ошибке в моем проекте, прежде чем я что-то сделал. Настройка среды в соответствии с моей разработкой породила чудеса. НТН.

Ответ 3

щелкните правой кнопкой мыши проект Properties- > C/С++ Build, в "Настройках Builder" установите флажок "Генерировать файлы автоматически", а затем выберите "Тип строителя" для "Внутренний строитель", а затем нажмите "ОК", проблема была решена!

Ответ 4

Я потратил много времени на эту ошибку и теперь понял, что те проекты, которые не скомпилированы, были созданы до того, как я установил MinGW и msys, поэтому раньше не было makefile. И не было папки include со ссылкой на make файл. Это причина, по которой я не мог ее скомпилировать. Теперь, когда я создаю новый проект, это прекрасно.

Однако, интересно, есть ли способ добавить путь к makefile для предыдущих проектов?

Спасибо

Ответ 5

Вы должны взглянуть на свой файл makefile (или создать его, если отсутствует). Это файл make default:

CXXFLAGS =  -O2 -g -Wall -fmessage-length=0
OBJS =      main.cpp
LIBS =
TARGET =      main.exe

$(TARGET):  $(OBJS)
    $(CXX) -o $(TARGET) $(OBJS) $(LIBS)
all:    $(TARGET)
clean:
    rm -f $(OBJS) $(TARGET)