C++ 使qt忽略特定的头文件包括文件

C++ 使qt忽略特定的头文件包括文件,c++,qt,waf,moc,C++,Qt,Waf,Moc,我有一个正在运行的qt项目。出于构建目的,我使用waf构建工具。要从waf启动并运行同一个项目,我需要添加 #include "file.moc" 在某些文件的末尾,以避免未定义的引用。但如果这些包含在qt中没有注释,我将无法找到文件错误。如何使qt忽略某些文件包含。我想这样的事情应该会奏效 #ifndef Q_MOC_RUN #include "file.moc" #endif 由于提供的信息有限,我只能说明waf可以做什么: 您可以包括moc文件或未处理的文件 示例包含在以下位

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

#include "file.moc" 
在某些文件的末尾,以避免未定义的引用。但如果这些包含在qt中没有注释,我将无法找到文件错误。如何使qt忽略某些文件包含。我想这样的事情应该会奏效

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

由于提供的信息有限,我只能说明waf可以做什么:

您可以包括moc文件或未处理的文件

示例包含在以下位置的分布式源代码中:

子目录:

  • 操场/慢车/
  • 演示/qt4/
为完整起见,简化示例如下:

默认包括

商务部


由于提供的信息有限,我只能说明waf可以做什么:

您可以包括moc文件或未处理的文件

示例包含在以下位置的分布式源代码中:

子目录:

  • 操场/慢车/
  • 演示/qt4/
为完整起见,简化示例如下:

默认包括

商务部


你应该更具体一点。如果您必须手动包含
moc
文件,则可能您已经做错了什么。问题是。。为了使代码在QT中运行,我必须对moc文件中包含的内容进行注释。但是要使用WAF运行相同的代码,我必须取消注释它们。可能是您在使用
WAF
构建时没有运行
moc
编译器吗?是的,WAF运行moc,在输出中我可以看到使用moc生成的moc文件。您应该更具体一点。如果您必须手动包含
moc
文件,则可能您已经做错了什么。问题是。。为了使代码在QT中运行,我必须对moc文件中包含的内容进行注释。但是要使用WAF运行相同的代码,我必须取消注释它们。可能是您在使用
WAF
构建时没有运行
moc
编译器吗?是的,WAF运行moc,在输出中,我可以看到使用MOCI生成的moc文件。当程序从qt运行时,MOCI正在寻找一种避免包含的方法。如果您包含您的cpp文件并使用第一个示例代码段,应该可以。完全不需要moc包括。无论哪种方式,都要发布准确的错误消息。我一直在寻找一种方法,以避免在从qt运行程序时出现包含。如果包含cpp文件并使用第一个示例代码段,就可以了。完全不需要moc包括。无论哪种方式,都要发布准确的错误消息。
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',
)
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 = '.')
)