VPATH не работает в make-файле - PullRequest
2 голосов
/ 06 октября 2011

У меня очень маленький файл make с содержимым

VPATH = src

main: main.o
        gcc -o main main.o

main.o: main.c
        gcc -c main.c

В текущем каталоге находится каталог src, содержащий main.c

Когда я выполняю make, я получаю ошибку

gcc -c main.c
gcc: main.c: No such file or directory
gcc: no input files
make: *** [main.o] Error 1

Когда я перемещаю main.c в текущий каталог, он работает.Кажется, макрос VPATH не работает.Пожалуйста, дайте мне знать об использовании VPATH.

1 Ответ

6 голосов
/ 06 октября 2011

Хотя make находит main.c просто отлично, здесь вам не хватает использования автоматических переменных:

main.o : main.c
        gcc -o $@ -c $<

, который будет расширен путем вызова до gcc вызова

gcc -o main.o -c src/main.c

Всегда используйте автоматические переменные $< (первая предпосылка) и $@ (цель), где вы можете, они делают и мощнее, и легче для чтения.

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