我正在尝试使用-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}'