首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何配置moc选项

如何配置moc选项
EN

Stack Overflow用户
提问于 2015-09-05 12:56:40
回答 2查看 1.3K关注 0票数 1

我有基于CMake的带有预编译头的Qt5项目(Common.h)。CMAKE_AUTOMOC关机了。我调用qt5_wrap_cpp来生成moc_*.cpp文件。

如何配置moc,以便将自定义包含添加到生成的moc_*.cpp文件中?(#include "Common.h")

目前,我使用/FI编译器标志强制包含Common.h,但它对代码自动完成工具(ReSharper)并不友好。

"Common.h":

代码语言:javascript
复制
#ifdef QT_CORE_LIB
# include <QtCore>
#endif

#ifdef QT_GUI_LIB
# include <QtGui>
#endif

#ifdef QT_WIDGETS_LIB
# include <QtWidgets>
#endif

#ifdef QT_MULTIMEDIA_LIB
# include <QtMultimedia>
#endif

#ifdef QT_NETWORK_LIB
# include <QtNetwork>
#endif

#ifdef QT_XML_LIB
# include <QtXml>
#endif

#ifdef QT_QML_LIB
# include <QtQml>
#endif

#ifdef QT_QUICK_LIB
# include <QtQuick>
#endif

#ifdef QT_SQL_LIB
# include <QtSql>
#endif
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-05 14:03:06

你不应该那么做。

Moc可以从接口文件(.h)或实现文件(.cpp)生成代码。在第一种情况下,接口本身包含在moc输出的开头。#include "Common.h"属于您的标题,而不是moc输出。在后一种情况下,moc输出必须由您在实现文件的末尾包含。同样,#include "Common.h"属于您的实现文件中的某个位置。

如果您开始考虑在从接口文件生成的moc输出中包含一个标头可能需要什么,那么只有一个结论:只有当界面的用户需要包含时才需要它。为您添加这样的内容从来都不是moc的职责。

票数 2
EN

Stack Overflow用户

发布于 2015-09-08 13:32:53

问题与CMake无关。

我在R++ bugtracker中创建了一个问题:RSCPP-14920

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32413313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档