使qt忽略特定的头文件包含文件

时间:2012-07-09 08:38:43

标签: c++ qt waf moc

我有一个用qt制作的正在运行的项目。出于建筑目的,我使用waf构建工具。要从waf启动和运行相同的项目,我需要添加

#include "file.moc" 

在某些文件的末尾,以避免未定义的引用。但如果这些包含没有在qt中注释,我得到无法找到文件错误。如何使qt忽略某些文件包含。我认为这样的事情应该已经成功了

#ifndef Q_MOC_RUN
    #include "file.moc"
#endif

1 个答案:

答案 0 :(得分:0)

由于提供的信息有限,我所能展示的就是waf可以做的事情:

您可以包含moc文件未处理的文件。

示例包含在https://code.google.com/p/waf/downloads/detail?name=waf-1.6.11.tar.bz2

的分布式源代码中

子目录:

  • 游乐场/ slow_qt /
  • 演示/ QT4 /

为了完整性,简化示例:

默认包含

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 = '.')
)