我有一個正在運行的項目在qt中。爲了構建目的,我使用waf構建工具。要獲得相同的項目,並將其從WAF運行,我需要一些文件的末尾添加使qt忽略特定的頭文件包括
#include "file.moc"
,以避免發生不可預料的參考。但如果這些包括沒有在qt中評論我得不到文件錯誤。你如何讓qt忽略某些文件包含。我覺得這樣的事情應該做的伎倆
#ifndef Q_MOC_RUN
#include "file.moc"
#endif
我有一個正在運行的項目在qt中。爲了構建目的,我使用waf構建工具。要獲得相同的項目,並將其從WAF運行,我需要一些文件的末尾添加使qt忽略特定的頭文件包括
#include "file.moc"
,以避免發生不可預料的參考。但如果這些包括沒有在qt中評論我得不到文件錯誤。你如何讓qt忽略某些文件包含。我覺得這樣的事情應該做的伎倆
#ifndef Q_MOC_RUN
#include "file.moc"
#endif
由於提供的信息有限,我只能展示的是什麼WAF可以這樣做:
你要麼可以包括建設部文件或未處理文件。
對於completness起見,簡化的例子:
實例在https://code.google.com/p/waf/downloads/detail?name=waf-1.6.11.tar.bz2
子目錄包括在分佈式源:
默認包括
def options(opt):
opt.load('compiler_cxx qt4')
def configure(conf):
conf.load('compiler_cxx qt4')
conf.load('slow_qt4')
def build(bld):
bld(
features = 'qt4 cxx cxxprogram',
uselib = 'QTCORE QTGUI QTOPENGL QTSVG',
source = 'some.cpp files.cpp',
includes = '.',
target = 'dummy',
)
MOC CPP
def options(opt):
opt.load('compiler_cxx qt4')
def configure(conf):
conf.load('compiler_cxx qt4')
def build(bld):
bld(
features = 'qt4 cxx cxxprogram',
uselib = 'QTCORE QTGUI QTOPENGL QTSVG',
source = 'some.cpp files.cpp',
target = 'dummy',
includes = '.')
)
我正在尋找一種避免包含程序從qt運行的方式。 – 2012-07-11 07:41:26
如果你包含你的cpp文件,並使用第一個示例代碼段,它應該沒問題。根本不需要moc。無論哪種方式,發佈您的確切錯誤信息。 – drahnr 2012-07-11 08:59:58
你應該有點更具體。如果您必須手動包含'moc'文件,則有可能您已經在做錯了什麼。 – pmr 2012-07-09 08:51:36
問題是。要使代碼在QT中運行,我必須評論這些moc文件包含的內容。但爲了使用WAF運行相同的代碼,我必須取消它們的註釋。 – 2012-07-09 08:57:11
當你用'WAF'構建時,是不是正在運行'moc'編譯器? – pmr 2012-07-09 09:07:09