псевдонимы makefile - PullRequest
       1

псевдонимы makefile

3 голосов
/ 14 октября 2010

Пожалуйста, объясните $ @ $ ^ $ в make-файле ниже

LIBS  = -lkernel32 -luser32 -lgdi32 -lopengl32
CFLAGS = -Wall

# (This should be the actual list of C files)
SRC=$(wildcard '*.c')

test: $(SRC)
    gcc -o $@ $^ $(CFLAGS) $(LIBS)

Ответы [ 2 ]

6 голосов
/ 14 октября 2010

Это то, что означают эти два символа:

  • $ @ - цель, то есть test
  • $ ^ - список предварительных условий для правила (которое вв данном случае это расширенный список подстановочных знаков, как указано в SRC=$(wildcard '*.c'))

Все такие переменные описаны на странице Автоматических переменных руководства по сборке GNU.

2 голосов
/ 26 октября 2016
SRC=$(wildcard '*.c')  

Это просто имя вашего исходного файла, оканчивающееся на .c, т.е. file1.c, file2.c file3.c и т. Д.

in

test: $(SRC)
    gcc -o $@ $^ $(CFLAGS) $(LIBS)

$ - это способчтобы определить переменные в Makefile

$ @ - ваша цель, в вашем случае это "test".

$ ^ - список всех предпосылок правила, включая именакаталоги, в которых они были найдены

$ <- список всех зависимостей </p>

ref: https://www.gnu.org/software/make/manual/make.html#Automatic-Variables

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