通过MAKE将参数传递给编译器

时间:2018-06-05 08:27:08

标签: ubuntu unix gcc makefile g++

当我尝试构建代码时:

make -C ./source/SomeUtil mode=release

失败并出现错误:

  

致命错误:模板实例化深度超过最大值35(使用   -ftemplate-depth =增加最大值)

似乎某种程度上我需要强制MAKE将该参数传递给编译器: 的 -ftemplate深入= 50

我尝试设置变量 CFLAGS CXXFLAGS ,但它根本没有帮助(仍然会在ftemplate-depth = 35时出错)。< / p>

export CFLAGS="-ftemplate-depth=50"
export CXXFLAGS="$CFLAGS"  

此外我尝试在MAKE之后传递CFLAGS和CXXFLAGS,但没有再次成功。

如何强制MAKE将-ftemplate-depth = 50参数传递给编译器?感谢。

1 个答案:

答案 0 :(得分:0)

你不能强迫make做Makefile没有设置接受的任何事情。

设置CXXFLAGS是正确的想法,但不是CFLAGS。 C编译器不知道如何处理&#34; -ftemplate-depth = 50&#34;。因此,只需设置CXXFLAGS并编辑我们的makefile以符合环境中设置的CXXFLAGS(或者更好地扩展Makefile中的CXXFLAGS,这样您就不必通过make进行passit)并确保它将CXXFLAGS传递给编译器。