Ошибка 1 make linux
Я пытаюсь использовать 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 немного изменим , то есть заменим шаблоны явными правилами:
Чудо! Можно сделать следующие выводы:
Теперь у нас есть идея проверить и другие зависимости в правиле :
Читайте также: