【发布时间】:2020-03-24 18:31:03
【问题描述】:
我有一个使用 Boost 库的 Qt/C++ 项目,我看到 Boost 标头是这样包含的:
#ifndef Q_MOC_RUN
#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/date_time/gregorian/gregorian.hpp>
#endif
我了解到,如果您不这样做,MOC 可能会导致问题。
问题是,我不应该使用这个保护来包含所有其他绝对不包含 Q_OBJECT marco 的标题吗?例如标准库头文件和其他非 Qt 库? MOC预处理器运行时不是会节省很多时间吗?
【问题讨论】:
-
我会说:只有在必要时才这样做。如果“moc 引起问题”,编译器通常会告诉你。
-
@FrankOsterfeld,感谢您的回复!为什么不一直这样做以节省构建时间?