make: *** Нет правила для создания цели `all '.Стоп.Ошибка затмения - PullRequest
18 голосов
/ 15 сентября 2010

Я только что скачал комплект разработчика 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.

Может кто-нибудь помочь мне с этим, пожалуйста?

Ответы [ 5 ]

10 голосов
/ 17 июня 2013

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

Это сообщение будет по-прежнему всплывать, если ваш make-файл не имеет правила "all". Использование опции «Автоматически создавать Makefiles» должно позаботиться об этом автоматически. Если вы не хотите, чтобы make-файлы создавались для вас, у вас есть как минимум 3 простых варианта ...

Вариант 1

Если вы не хотите, чтобы использовал правило с таким именем, используйте решение twokats. Вот пояснение.

  1. Перейдите в Свойства проекта -> Сборка C / C ++ -> Вкладка «Поведение».
  2. Проверен Leave Build (Инкрементный билд).
  3. Удалите «все» из текстового поля рядом с «Построить» (Incremental Build).

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

Вариант 2

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

Вариант 3

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

6 голосов
/ 17 сентября 2010

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

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

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

5 голосов
/ 27 мая 2015

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

2 голосов
/ 03 декабря 2010

Вы должны взглянуть на свой make-файл (или создать его, если он отсутствует).Это make-файл по умолчанию:

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)
2 голосов
/ 15 сентября 2010

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

Однако мне интересно, есть ли способ добавить путь к make-файлу для предыдущих проектов?

Спасибо

...