2015-07-10 325 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