簡體   English   中英

Eclipse為什么認為clang不支持std :: atomic

[英]Why does Eclipse think clang doesn't support std::atomic

我有一個使用某些c ++ 11功能的eclipse c ++項目。 它使用cmake進行構建,因此在eclipse中將其設置為具有現有Makefile的項目。

使用Eclipse或命令行中的makefile可以很好地構建它。 但是我收到atomic_bool語法錯誤,說該符號無法解析。 我在“ C / C ++常規->預處理程序包含模式->提供程序-> CDT GCC內置編譯器設置”下添加了-std=c++11 ,並且將eclipse中的工具鏈設置為MacOSX GCC。

注意:其他c ++ 11之類的東西,例如threadshared_ptr不會給出任何語法錯誤。

錯誤來自<atomic>標頭,其中有預處理器if語句

#if !__has_feature(cxx_atomic)
#error <atomic> is not implemented
#else
...

#else下的所有內容均為灰色。 因此,顯然__has_feature(cxx_atomic)根據月食評估為0。 但是,如果我從命令行檢查它,則表明它應該評估為true。

$ echo '__has_feature(cxx_atomic)' | g++ -x c++ -std=c++11 -E -
# 1 "<stdin>"
# 1 "<built-in>" 1
# 1 "<built-in>" 3
# 188 "<built-in>" 3
# 1 "<command line>" 1
# 1 "<built-in>" 2
# 1 "<stdin>" 2
1

為什么__has_feature(cxx_atomic)在Eclipse中評估為false,但如果我檢查編譯器本身,則不是?

嘗試啟用“構建輸出解析器”。 http://www.eclipse.org/forums/index.php/t/501479/

我也遇到了這個問題,支持其他C ++ 11功能,但不支持atomic。

暫無
暫無

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

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