我在app源目录之外的头文件有一些问题。我的项目目录结构:
/prj
/include
slon.h
...
/src
/app
slon.cpp
...
/lib1
/lib2
...
SConstruct
源文件位于' prj / src / app'和公共标题位于' prj / include'。一些标题应该被moced,因为包含Q_OBJECT宏。在qmake中,这些标题明确添加为源。在SCons中,据我所知,不应显式添加此类标头 - SCons会扫描源并自动派生相应的标头。但这仅适用于与源文件位于同一目录中的标头。如果头文件位于' prj / include'目录,然后SCons没有moc标头。在上面的示例文件' slon.h'包含带有Q_OBJECT宏的类,并包含在' slon.cpp'但没有被忽视,只是被忽略了。
如何强制SCons到位于单独目录中的moc标头?
答案 0 :(得分:0)
据我所知,来自 SCons 的核心来源的默认Qt工具(专为Qt3项目设计)并没有为此提供解决方案。你可以编写自己的Builder,当然......
单独开发的Qt4和Qt5工具(参见the SCons ToolIndex,并按照相应的链接)提供
ExplicitMoc4(target, source)
和
ExplicitMoc5(target, source)
分别是Builder。这些应该可以帮助你在所有那些" Automoc"功能失败。