我有一个用qt制作的正在运行的项目。出于建筑目的,我使用waf构建工具。要从waf启动和运行相同的项目,我需要添加
#include "file.moc"
在某些文件的末尾,以避免未定义的引用。但如果这些包含没有在qt中注释,我得到无法找到文件错误。如何使qt忽略某些文件包含。我认为这样的事情应该已经成功了
#ifndef Q_MOC_RUN
#include "file.moc"
#endif
答案 0 :(得分:0)
由于提供的信息有限,我所能展示的就是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 = '.')
)