如何在"-I includeir"之后添加'-include global.h'?



我正在尝试使用-include预处理器选项。GCC预处理器选项我没有在我的配置方法中这样做作为常规CXXFLAGS选项

def configure(conf):
    conf.load('compiler_cxx')
    conf.env.append_value('CXXFLAGS', ['-g', '-include global.h'])

,因为它在-I选项之前添加了它。和gcc找不到我的头。如何在所有-I选项之后添加-include global.h ?

我想你可以看看waf book§10.3.2。您可以为cxx特性附加一个特定的方法,以便在包含路径后添加'-include'选项。

另一种方法是monkeypatch cxx类并修改管理编译的run_str字符串。

第三个选择:在waf邮件列表上提问,你通常很快就会得到答案^^

解决方案是:

def build(bld):
    bld.env.MYFLAGS = ['-include', 'global.h']
    from waflib import Task
    class cxx(Task.classes['cxx']):
        run_str = '${CXX} ${ARCH_ST:ARCH} ${CXXFLAGS}${FRAMEWORKPATH_ST:FRAMEWORKPATH} ${FRAMEWORK_ST:FRAMEWORK}${CPPPATH_ST:INCPATHS} ${MYFLAGS} ${DEFINES_ST:DEFINES}${CXX_SRC_F}${SRC} ${CXX_TGT_F}${TGT}' 

最新更新