编译文件告诉makefile如何编译
Posted
技术标签:
【中文标题】编译文件告诉makefile如何编译【英文标题】:Compiled file tells makefile how to compile 【发布时间】:2016-02-12 01:43:16 【问题描述】:我的问题可能听起来不合逻辑,但对我来说非常重要。
假设我们有这样的文件和文件夹
project_rat/
project_cat/
project_rabbit/
Makefile
用户可以在此处添加任何项目文件夹。 Makefile
具有以下配置变量:
model_name:= project_rat
用户可以将此model_name
variable 更改为任何文件夹。
makefile 编译相应的项目文件夹。
g++ -std=c++11 $(model_name)/main.cpp
现在我的问题是我想在Makefile
中添加一个调试/发布变量,并在此基础上打开适当的优化器。我希望从我的项目中确定这个变量。它必须取决于每个单独的项目。一个项目可能需要-O2
和另一个-O3
。
我可以通过任何 C++ 代码影响Makefile
吗?
【问题讨论】:
【参考方案1】:假设您使用的是 GNU make(一个安全的选择,考虑到您使用 gcc),请将其添加到您的 Makefile
:
include $(model_name)/Makefile.opts
现在,在每个项目目录中创建一个文件 Makefile.opts
,用于设置该项目的 Makefile 选项。
这就像 C/C++ #include
预处理器指令一样工作。
如果您不想在每个项目目录中要求Makefile.opts
,请使用sinclude
而不是include
。
【讨论】:
以上是关于编译文件告诉makefile如何编译的主要内容,如果未能解决你的问题,请参考以下文章