我有C ++静态库和使用它们的可执行文件,每个都在一个单独的文件夹中。当文件层次结构如下所示时,每个此类项目都可以在Debug或Release配置中构建:
Static_Lib1 \调试\ staticlib1.a
Static_Lib1 \发布\ staticlib1.a
//对于所有其他静态库而言相同
可执行\调试\可执行
可执行文件\发布\可执行文件
所有Debug和Release文件夹都包含makefile 我正在尝试编写一个外部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。
提前谢谢!
答案 0 :(得分:1)
将其更改为:
...
release:
make CFG=Release build-all
debug:
make CFG=Debug build-all
...