2012-07-06 5 views
0

나는 boost 라이브러리를 사용하는 waf을 사용하여 프로젝트를 실행하려고합니다. 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']) 

으로 시도했지만 실패했습니다. 인수를 MOC에 전달하는 방법은 waf?

+0

moc로 전달해야합니까? 일반 정의와 비슷하며 http://docs.waf.googlecode.com에서 볼 수있는 것처럼 "bld (..., define = [ 'QT_NO_KEYWORDS', 'BOOST_TT_HAS_OPERATOR_HPP_INCLUDED'] ...)를 통해 정의해야합니다. /git/book_16/single.html 섹션 9.1.2 – drahnr

답변

0

여기서 가능한 문제는 waf이 위에서 정의한 작업 생성기와 동일한 cxxflags을 전달하지 않을 수도있는 new task for moc을 호출한다는 것입니다.

가능한 수정 그래서 같은 waf 환경에 정의를 추가하는 것입니다 :

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

당신은 당신이 사용자 정의 기능을 구현 할 수있는 moc 작업에 정의를 추가로 추가하려면 moc 작업을 파고 정의를 추가하는 작업 생성기.