У меня есть статические библиотеки C++ и исполняемый файл, который их использует, каждый из которых находится в отдельной папке. Каждый такой проект может быть построен в Debug или Release конфигурации, когда иерархия файлов подобно следующему: Static_Lib1 \ Debug \ staticlib1.a
Static_Lib1 \ Release \ staticlib1.a
// то же самое для всех других статических библиотек
Executable \ Debug \ executable
Исполняемый \ Release \ executableОбновить переменные в метке makefile
Все папки для отладки и выпуска содержат файлы make-файлов.
Я пытаюсь написать внешний файл makefile для вызова каждого из внутренних проектов, используя выбранную конфигурацию - debug или release.
Итак, я пытался что-то вроде:
CFG= #empty declaration
PROJECTS=Static_Lib1 Static_Lib2 ... Executable
all:
release #default config is release
release:
CFG = Release
make build-all
debug:
CFG = Debug
make build-all
build-all:
make clean
$(foreach projectName, $(PROJECTS), cd $(projectName)/$(CFG) && make all;)
Но я получаю этот выход при попытке, например, для запуска make debug
:
CFG = Debug
make: CFG: Command not found
make: *** [debug] Error 127
Как я могу это исправить?
Моя ОС SLED 11x64.
Спасибо заранее!
Большое спасибо! –
Thats бессмысленно. Все, что происходит, это вызвать make-файл. Вы также можете избавиться от целей выпуска и отладки и вызвать 'make CFG = WHATEVER build-all' напрямую –