我有一个用 qt 制作的正在运行的项目。出于构建目的,我正在使用 waf 构建工具。要从 waf 启动并运行相同的项目,我需要添加
#include "file.moc"
在某些文件的末尾以避免未定义的引用。但是如果这些包含没有在 qt 中注释,我会得到找不到文件错误。你如何让 qt 忽略某些文件包含。我认为这样的事情应该可以解决问题
#ifndef Q_MOC_RUN
#include "file.moc"
#endif
由于提供的信息有限,我只能展示 waf 可以做什么:
您可以包含 moc 文件或未处理的文件。
示例包含在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 = '.')
)