我有 C++ 静态库和使用它们的可执行文件,每个都在一个单独的文件夹中。每个这样的项目都可以在调试或发布配置中构建,当文件层次结构如下所示时:
Static_Lib1\Debug\staticlib1.a
Static_Lib1\Release\staticlib1.a
//所有其他静态库都一样
可执行\调试\可执行
可执行\发布\可执行
所有 Debug 和 Release 文件夹都包含 makefile。
我正在尝试编写一个外部 makefile 来调用每个内部项目,使用选定的配置 - 调试或发布。
所以,我尝试了类似的方法:
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。
提前致谢!
最佳答案
将其更改为:
...
release:
make CFG=Release build-all
debug:
make CFG=Debug build-all
...
关于linux - 更新 makefile 标签中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4920184/