编译文件告诉makefile如何编译

时间:2016-02-12 01:43:16

标签: c++ gcc makefile

我所问的可能听起来不合逻辑但对我来说非常重要。

让我们假设我们有这样的文件和文件夹

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吗?

1 个答案:

答案 0 :(得分:4)

假设你正在使用GNU make(安全的赌注,考虑到你使用gcc),请将其添加到Makefile

include $(model_name)/Makefile.opts

现在,在每个项目目录中创建一个文件Makefile.opts,为该项目设置Makefile选项。

这就像C / C ++ #include预处理程序指令一样。

如果您不想在每个项目目录中要求Makefile.opts,请使用sinclude代替include