GCC 4.7,包括<stdatomic.h> </stdatomic.h>

时间:2012-03-29 02:12:31

标签: gcc include atomic gcc4.7

我刚刚编译GCC 4.7以使用stdatomic.h,但我似乎无法-Istdatomic.h似乎住在/usr/include/c++/4.4.3,但是链接器告诉我它需要附近的一堆其他文件。如果我-I全部,我仍然会收到错误undefined reference to atomic_flag_clear_explicit。任何想法我应该如何链接这个?

3 个答案:

答案 0 :(得分:2)

首先,如果您使用GCC 4.7进行编译,则不应在GCC 4.4的目录中包含或链接任何

其次,-I仅影响头文件的搜索路径。 &#34;未定义参考&#34;是一个链接器错误,通常意味着它没有找到合适的库。您使用-L更改库搜索路径。链接器没有说它没有找到一个具有正确名称的库,它说它没有找到符号,所以很明显它找到的库没有那个符号。我建议您有版本问题,可能是由安装问题引起的。

答案 1 :(得分:2)

&lt; stdatomic.h&gt; GCC 4.4和4.5中的标题来自C ++ 0x atomics的早期草案,但不是最终标准的一部分,因此它已从libstdc ++中删除。

C ++编译器通过C ++ 11&lt; atomic&gt;支持C ++ 11原子。标题,所以你应该在C ++代码中使用那个标题。

当C编译器支持C11原子时,&lt; stdatomic.h&gt;标题将再次提供。

答案 2 :(得分:0)

使用此命令为我解决了问题:

.list-group

我在 CentOS 7 上输入 $ scl enable devtoolset-7 bash 安装 Python 3.8.5 时遇到和你一样的错误。