2

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

#include "file.moc" 

在某些文件的末尾以避免未定义的引用。但是如果这些包含没有在 qt 中注释,我会得到找不到文件错误。你如何让 qt 忽略某些文件包含。我认为这样的事情应该可以解决问题

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

1 回答 1

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 = '.')
)
于 2012-07-10T17:12:07.183 回答