繁体   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