簡體   English   中英

用Clang編譯Boost時出錯

[英]Errors when compiling Boost with Clang

我正在嘗試在C ++ Builder(embarcadero)的應用程序中使用boost,在包含boost / filesystem.hpp並使用Clang進行編譯時遇到了一些非常奇怪的錯誤,但我似乎無法弄清楚是什么造成它。

錯誤看起來像這樣:

[CLANG Error] logical_op.hpp(145): unknown type name 'or__rebind'
[CLANG Error] if.hpp(72): unknown type name 'if__rebind'
[CLANG Error] eval_if.hpp(43): unknown type name 'eval_if_rebind'
[CLANG Error] identity.hpp(28): unknown type name 'identity_rebind'
[CLANG Error] identity.hpp(37): unknown type name 'make_identity_rebind'
[CLANG Error] not.hpp(44): unknown type name 'not__rebind'

所有這些錯誤都在使用函數BOOST_MPL_AUX_LAMBDA_SUPPORT()時發生,並且似乎僅在使用Clang時發生。 該代碼可以使用Borlands自己的編譯器很好地編譯。

即使它是一個全新的項目,它也會發生,並且我添加的唯一一行是#include <boost/filesystem.hpp>

編輯:我剛剛嘗試包括<boost/thread.hpp> ,這是拋出的錯誤的<boost/thread.hpp>

[CLANG Error] greg_month.hpp(62): type 'greg_month_rep' (aka 'constrained_value<greg_month_policies>') is not a direct or virtual base of 'boost::gregorian::greg_month'
[CLANG Error] greg_month.hpp(64): type 'greg_month_rep' (aka 'constrained_value<greg_month_policies>') is not a direct or virtual base of 'boost::gregorian::greg_month'
[CLANG Error] greg_month.hpp(68): use of undeclared identifier 'value_'
[CLANG Error] greg_month.hpp(69): use of undeclared identifier 'value_'

請告訴我是否需要提供更多信息。

是否需要設置任何編譯器標志,或者我可能會錯過的其他標志?

提前致謝。

您必須將$ CG_BOOST_ROOT更改為$ CG_64_BOOST_ROOT,才能使用BCC32C(CLANG)獲得出廠的BOOST 1.55,而不是1.39:

在這里閱讀: http : //docwiki.embarcadero.com/RADStudio/Seattle/en/Boost

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM