GNU make (и многие другие) имеют два основных способа присвоения значений переменным. Они отличаются в зависимости от оператора, которого вы используете. Согласно документации , один знак равенства (=
) вызовет рекурсивное расширение значения, тогда как двоеточие (:=
) вызовет простое расширение .
В указанном вами коде используется :=
, поэтому должно вызвать простое расширение. То, что вы видите, - это сообщение об ошибке, связанное с рекурсивным расширением. Я бы ожидал такого рода ошибки, если бы у вас было что-то вроде этого:
PATH = $(PATH):/other/dir
Может ли ошибка быть вызвана другой строкой в вашем make-файле, которую вы не указали в кавычках? Если вы уверены, что ваши вырезки и вставки верны, и что именно эта строка вызывает проблему, было бы полезно, если бы мы могли видеть весь неотредактированный make-файл.