2012-07-06 64 views
0

我試圖運行使用waf的項目,它使用boost庫。爲了克服problem我需要將-DBOOST_TT_HAS_OPERATOR_HPP_INCLUDED參數傳遞給MOC。我試圖在wscript這樣做,因爲waf:將編譯器標誌傳遞給qt的moc

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']) 

但它失敗了。如何使用waf將參數傳遞給MOC

+0

你確定這些需要傳遞給moc嗎?它們看起來像泛型定義,應該通過「bld(...,defined = ['QT_NO_KEYWORDS','BOOST_TT_HAS_OPERATOR_HPP_INCLUDED',...)」來定義,如http://docs.waf.googlecode.com /git/book_16/single.html第9.1.2節 – drahnr 2012-07-10 17:20:12

回答

0

這裏可能的問題是waf調用new task for moc,它可能不會像上面定義的任務生成器那樣攜帶相同的cxxflags

一個可能的解決將是該定義添加到waf環境,像這樣:

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

如果你只是想給定義添加到moc任務,你可以實現自定義功能,並將其添加到你的任務生成器挖掘出moc任務並添加定義。

相關問題