我所问的可能听起来不合逻辑但对我来说非常重要。
让我们假设我们有这样的文件和文件夹
project_rat/
project_cat/
project_rabbit/
Makefile
用户可以在此处添加任何项目文件夹。 Makefile
具有以下配置变量:
model_name:= project_rat
用户可能会将此model_name
变量更改为任何文件夹。
和makefile编译相应的项目文件夹。
g++ -std=c++11 $(model_name)/main.cpp
现在我的问题是我想在Makefile
中添加一个调试/发布变量,并在此基础上打开相应的优化器。我希望这个变量可以从我的项目中确定。它必须依赖于每个项目。一个项目可能需要-O2
,另一个-O3
。
我可以从任何C ++代码中影响Makefile
吗?
答案 0 :(得分:4)
假设你正在使用GNU make(安全的赌注,考虑到你使用gcc),请将其添加到Makefile
:
include $(model_name)/Makefile.opts
现在,在每个项目目录中创建一个文件Makefile.opts
,为该项目设置Makefile选项。
这就像C / C ++ #include
预处理程序指令一样。
如果您不想在每个项目目录中要求Makefile.opts
,请使用sinclude
代替include
。