Что означает $ + в make-файле GNU?
Кроме того, пожалуйста, дайте мне хорошее руководство по поиску для написания make-файлов.
ответ
Из make manual:
$^ Имена всех предпосылок, с промежутками между ними. Для предварительных условий, являющихся членами архива, используется только член с именем (см. Архивы). У цели есть только одно обязательное условие для каждого другого файла, от которого он зависит, независимо от того, сколько раз каждый файл указан в качестве предварительного условия. Поэтому, если вы перечислите предварительное условие более одного раза для цели, значение $^содержит только одну копию имени. Этот список не содержит никаких предварительных условий . для тех, кто видит `$ | ' ниже, ниже.
$ + Это как `$ ^», но предпосылки, перечисленные несколько раз дублируются в порядке были перечислены в Makefile. Это в первую очередь полезно для использования при связывании команд, где имеет смысл повторять имена файлов библиотек в определенном порядке.
В обоих случаях все, что я могу сказать, это RTFM ... или RTFI в этом случае. Тип
info make
в командной строке и вся информация, которую вы когда-либо захотите, будет у вас под рукой.
Для $+
конкретно: это относится к именам всех предварительных условий текущего правила. Смотрите, например http://uw714doc.sco.com/cgi-bin/info2html?(make.info)Automatic&lang=en
как грубо! :) - только шучу – Sev
'info' не хватает для GNU make; по крайней мере, в RHEL 6, 'info gmake' предоставляет тот же справочный материал, что и« man gmake », в котором говорится, что для получения дополнительной информации см. справочное руководство GNU. –