waf:将编译器标志传递给qt的moc

时间:2012-07-06 10:42:38

标签: qt waf moc

我尝试使用waf使用boost库运行项目。要克服problem我需要将-DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED参数传递给MOC。我尝试在wscript作为

这样做
   bld(features ='cxx',
       source   ='GSTEngine.cpp',
       target   = 'GSTEngine.o',
       includes = qtinc+gstinc+taginc,use=['BOOST'],
       uselib   = qtlibs,
       cxxflags = ['-DQT_NO_KEYWORDS','-DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED'])

但失败了。如何使用MOC将参数传递给waf

1 个答案:

答案 0 :(得分:0)

此处可能存在的问题是,waf调用的new task for moc可能不会与您在上面定义的任务生成器具有相同的cxxflags

可能的解决方法是将定义添加到waf环境中,如下所示:

conf.env.append_unique('DEFINES',
    ['QT_NO_KEYWORDS','BOOST_TT_HAS_OPERATOR_HPP_INCLUDED'])

如果您只想将定义添加到moc任务,您可以实现自定义功能并将其添加到任务生成器中,挖掘moc任务并添加定义。