Что означает @ ... @ в этом фрагменте Makefile? - PullRequest
2 голосов
/ 14 ноября 2011

Может кто-нибудь объяснить мне кратко (просто как идею), что предлагает следующий фрагмент? - Я новичок в языке Си, поэтому не понимаю значения знака @ ... @:


@SET_MAKE@

VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@

или


build_triplet = @build@
host_triplet = @host@

Если необходимо добавить больше кода, дайте мне знать.

Заранее спасибо.

Ответы [ 3 ]

5 голосов
/ 14 ноября 2011

Система использования имен, заключенных в @, используется autoconf для маркировки строк, которые должны быть заменены сценарием configure.

4 голосов
/ 14 ноября 2011

Похоже, что это какие-то переменные системы сборки, поскольку символ @ вообще не используется (я полагаю) в Си. Учитывая имена, это кажется еще более вероятным. Пакет и исходный каталог будут вставлены в соответствующие места.

Возможно, более интересными являются $(var) s, которые часто используются в файлах проекта Visual Studio (но не в исходных текстах, а VS proj - это сам по себе файл make).

Полагаю, у вас здесь есть два типа системных переменных make / build. Будь они из двух систем, я не знаю. Как отметил в комментарии Брайан Роуч, здесь задействован как минимум GNU autoconf.

Из какого файла это произошло, и какой другой текст его окружает? Это может пролить больше света, если использовать хорошо известное имя. Возможно, это вовсе не файл кода, а просто файл make; или это может быть файл кода с системными переменными сборки (для замены при сборке).

3 голосов
/ 14 ноября 2011

Это вообще не C, больше похоже на сборочный файл. Посмотрите на имя файла, где вы нашли это, я сомневаюсь, что оно заканчивается в .c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...