2015-07-10 100 views
0

我正在使用boost 1.54和Qt version 5.2.1。错误:'boost :: Q_FOREACH'尚未声明

我收到以下错误,当我尝试建立包

/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.hpp,其中包括foreach.hpp。 我试过在项目文件(.pro)中包含CONFIG += no_keywords。但我仍然得到这个错误。我不确定是什么原因。

+0

你有一个名为'foreach'的宏定义扩展为'Q_FOREACH'吗? – Praetorian

+0

您是否在添加no_keywords到CONFIG后重新运行qmake? – MrEricSir

+0

@MrEricSir:谢谢。我不再有这个错误了,但是我得到了一个新的错误'error:expected':'''''之前''' '错误:'slots'没有命名一个类型' '错误:'signals'没有命名一个类型' 我试着关注这个[link](http://doc.qt.io/qt-5/signalsandslots.html#using-qt-with-3rd-party-signals-and-slots)。而上述错误消失了。现在我越来越奇怪的错误。 – user127032

回答

0

对于即将到来的Boost 1.60发行版,此问题已被circumvented记录,因此您可以让Qt定义宏foreach