Моей мотивацией для этого является избежание необходимости указывать относительный путь для каждого исходного файла, как я объясняю ниже.
Структура каталогов моего проекта выглядит следующим образом:
Код: Выделить всё
MyPlugin --> src --> Foo.cpp
--> Foo.h
--> Bar.cpp
--> Bar.cpp
--> build --> Makefile
Код: Выделить всё
SRC_PATH=../src
OUT_PATH=../bin
VPATH=${SRC_PATH}
FILES=Foo.cpp Bar.cpp
CC=g++
CFLAGS=-Wall -shared
all:
mkdir -p ${OUT_PATH}
${CC} ${CFLAGS} -I${SRC_PATH} ${FILES} -o ${OUT_PATH}/MyPlugin.so
Код: Выделить всё
FILES=../src/Foo.cpp ../src/Bar.cpp
g++: Foo.cpp: Нет такого файла или каталога
g++: Bar.cpp: Нет такого файла или каталога
Я не могу использовать подстановочные знаки (
Код: Выделить всё
*.cppЯ просмотрел справку g++, документацию make и просмотрел сообщения о переполнении стека, такие как https://stackoverflow.com/questions/100 ... -directory и gcc/g++: «Нет такого файла или каталога», но я не смог найти решения, которое можно было бы использовать. Существует ли подходящий подход к этой проблеме?
Пример может ввести в заблуждение. В этом урезанном примере все исходные файлы находятся в одном каталоге, но в моем реальном проекте у меня есть несколько подкаталогов и несколько файлов в каждом каталоге. Таким образом, хотя переход в каталог src работает в моем примере выше, он не будет работать в моем реальном проекте (или, по крайней мере, я хотел бы знать, как это будет работать).
Подробнее здесь: https://stackoverflow.com/questions/136 ... -directory
Мобильная версия