Ошибка 1 make linux

Обновлено: 03.07.2024

Я пытаюсь использовать GCC (Linux) с make-файлом для компиляции моего проекта.

Я получаю следующую ошибку, которая не может расшифровать в этом контексте:

Типичный пример, которым вы «делаете» исходный файл «не существующим», - это сброс переменной VPATH или SRC по ошибке, когда вам нужно добавить к ней. Я имею в виду usnig VPATH= вместо VPATH+= . Это делает Makefile файл не может видеть файлы, когда файл на самом деле там.

Обычно это потому, что у вас нет файла, который vertex.cpp можно сделать доступным. Проверь это:

  • этот файл существует.
  • вы находитесь в правильном каталоге, когда вы делаете.

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

Да, у некоторых из моих классов нет файлов .cpp, поэтому их там не было, что вызвало ошибку. Спасибо. Вы также можете получить такую ​​ошибку, если есть некоторые заголовочные файлы, которые вы удалили, но все еще есть в вашем Makefile @par, это похоже на другой вопрос для меня. Вы, вероятно, получите больше информации, если зададите вопрос. Кроме того, убедитесь, что вы сохранили свой Makefile после его редактирования . Это то, что досталось мне. Я сделал все свои правки, затем забыл нажать CTRL + S

По моему опыту, эта ошибка часто вызвана орфографической ошибкой.

Я получил эту ошибку сегодня.

make [1]: *** Нет правила для создания цели maintenaceDialog.cpp', needed by maintenaceDialog.o '. Стоп.

В моем случае ошибка была просто орфографической ошибкой. Слово ТЕХНИЧЕСКОЕ ОБСЛУЖИВАНИЕ отсутствовало, это третий Н.

Также проверьте правильность написания ваших имен файлов.

Мета почему в этом случае из-за явного перечисления отношений объект / источник / заголовок. Если новые инструменты, такие как SubCons или CMake , не нужны, gcc -MT и gnu make pattern может решить эту проблему. См также . В моем случае путь был неправильным, ../../src/file.c но на самом деле это было ../../src/folder/file.c

Вы можете добавить каталог, используя аргумент -I для gcc.

В моем случае я использовал запятые в качестве разделителей. Чтобы использовать ваш пример, я сделал это:

Меняя его на эквивалент

Это точно? Помните, что синтаксис Makefile учитывает пробелы и требует вкладок для отступа команд под действиями.

Проблема, которую я обнаружил, была еще глупее, чем то, о чем говорили другие.

Наши make-файлы получают списки объектов для сборки. Кто-то добавил TheOtherLibrary в один из списков, как показано ниже.

Они должны были сделать это:

Если бы они сделали это вторым способом, они бы не уничтожили Library сборку. Плюс в += это очень важно.

В моем случае это было связано с ошибкой многострочного правила в Makefile. У меня было что-то вроде:

Обратная косая черта в конце списка файлов в CONFIG_OBJ1 правиле вызвала эту ошибку. Это должно быть как:

Одной из частых ошибок может быть опечатка в другом имени файла .

Содержимое моей папки:

В то время как мой makefile выглядит

Давайте makefile немного изменим , то есть заменим шаблоны явными правилами:

Чудо! Можно сделать следующие выводы:

Теперь у нас есть идея проверить и другие зависимости в правиле :

Читайте также: