2009-07-05 3 views
2

Что означает $ + в make-файле GNU?
Кроме того, пожалуйста, дайте мне хорошее руководство по поиску для написания make-файлов.

ответ

6

Из make manual:

$^         Имена всех предпосылок, с промежутками между ними. Для предварительных условий, являющихся членами архива, используется только член с именем (см. Архивы). У цели есть только одно обязательное условие для каждого другого файла, от которого он зависит, независимо от того, сколько раз каждый файл указан в качестве предварительного условия. Поэтому, если вы перечислите предварительное условие более одного раза для цели, значение $^содержит только одну копию имени. Этот список не содержит никаких предварительных условий . для тех, кто видит `$ | ' ниже, ниже.

$ +         Это как `$ ^», но предпосылки, перечисленные несколько раз дублируются в порядке были перечислены в Makefile. Это в первую очередь полезно для использования при связывании команд, где имеет смысл повторять имена файлов библиотек в определенном порядке.

8

В обоих случаях все, что я могу сказать, это RTFM ... или RTFI в этом случае. Тип

info make 

в командной строке и вся информация, которую вы когда-либо захотите, будет у вас под рукой.

Для $+ конкретно: это относится к именам всех предварительных условий текущего правила. Смотрите, например http://uw714doc.sco.com/cgi-bin/info2html?(make.info)Automatic&lang=en

+0

как грубо! :) - только шучу – Sev

+0

'info' не хватает для GNU make; по крайней мере, в RHEL 6, 'info gmake' предоставляет тот же справочный материал, что и« man gmake », в котором говорится, что для получения дополнительной информации см. справочное руководство GNU. –