【问题标题】:error: ‘boost::Q_FOREACH’ has not been declared错误:'boost::Q_FOREACH' 尚未声明
【发布时间】:2015-07-10 16:58:01
【问题描述】:

我使用的是 boost 1.54 和 Qt 版本 5.2.1。

我在尝试构建包时收到以下错误

/usr/include/boost/multi_index/sequenced_index.hpp:927:10: error: 'boost::Q_FOREACH’ has not been declared
 boost::foreach::tag
        ^

/usr/include/boost/multi_index/ordered_index.hpp:1399:10: error: ‘boost::Q_FOREACH’ has not been declared
 boost::foreach::tag)
    ^

检查了sequenced_index.hppordered_index.hpp 中的标题,它们都包含foreach_fwd.hppforeach.hpp。 我尝试在项目文件(.pro) 中包含CONFIG += no_keywords。但我仍然收到此错误。不知道是什么原因。

【问题讨论】:

  • 您是否定义了一个名为 foreach 并扩展为 Q_FOREACH 的宏?
  • 在 CONFIG 中添加 no_keywords 后是否重新运行了 qmake?
  • @MrEricSir:谢谢。我不再收到该错误,但我收到了一个新错误error: expected ‘:’ before ‘slots’;error: ‘slots’ does not name a typeerror: ‘signals’ does not name a type 我尝试关注此link。并且上面的错误消失了。现在我遇到了奇怪的错误。
  • 如果您有新问题,要做的就是打开一个新问题。

标签: c++ qt boost boost-multi-index


【解决方案1】:

郑重声明,这个问题在即将发布的 Boost 1.60 版本中是 circumvented,以便您可以让 Qt 定义宏 foreach

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-25
    • 2013-08-21
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    相关资源
    最近更新 更多