如何向extconf.rb添加C ++编译器标志

我正在编写Ruby扩展,我有一个标准的mkmf配置脚本,但我需要在所有C ++编译步骤中添加一个特殊的include标志( --std=c++0x )。 我不希望它在C编译步骤中,因为它会抛出警告。 我该怎么做?

 require 'mkmf' create_makefile('thing') 

例如,我尝试了$CXXFLAGS << '-I..' I $CXXFLAGS << '-I..' ,但CXXFLAGS尚未定义。 如果我使用$CXXFLAGS = '-I..' I $CXXFLAGS = '-I..' ,它稍后会被覆盖。

这对我有用。

 $CXXFLAGS += " -std=c++11 " 

我已经看到类似的情况通过将$(CXX)定义为编译器和所需参数的组合来处理。

 CXX=gcc --std=c++0x 

这是一个非常古老的问题,但这对我有用:

 $CXXFLAGS += '-I..' 

只需编辑mkmf生成的Makefile,这是最简单的方法。

在extconf.rb中的create_makefile()之后打开并重写Makefile。

编辑RbConfig的东西很难。