c - <stdatomic.h> 在 GCC 4.8 中?

标签 c multithreading gcc atomic c11

我想利用 C11 标准提供的新原子操作。但是,尝试 #include 适当的头文件给了我这个:

 csort-par.c:5:23: fatal error: stdatomic.h: No such file or directory
 #include <stdatomic.h>

文档位于 http://gcc.gnu.org/wiki/C11Status似乎是说从 GCC 4.7 开始就提供了头文件……我是不是遗漏了什么? __STDC_NO_ATOMICS__ 未定义。

gcc --version 如下:

gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.

并且我确认 __STDC_NO_ATOMICS__ 没有定义如下:

#ifdef __STDC_NO_ATOMICS__
#error yes
#else
#error no
#endif

产量:

csort-par.c:10:2: error: #error no
 #error no

编辑:感谢您的快速回复。

以防万一有人从谷歌遇到同样的问题,这里有一个临时修复程序,直到他们发布 GCC 4.9:

UNIX Portable Atomic Operations

最佳答案

此文件丢失。 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58016

它仅在 gcc 4.9 中得到修复,如其发行说明所述 (http://gcc.gnu.org/gcc-4.9/changes.html)

关于c - <stdatomic.h> 在 GCC 4.8 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20326604/

相关文章:

将二进制转换为对应的 ASCII 字符

java - Java中什么情况下需要同步数组?

c# - 在后台工作线程中使用 C# 全局变量是否安全

c - C Unix 中的段错误(核心转储)

在 GTK+ gui 中调用外部函数

32 位和 64 位架构中结构成员对齐的混淆

c++ - 这是什么 C++ 语言构造 : # (i. e。哈希)整数 "path_to_header_or_cpp_file"<整数>?

c - 每当我在输出端打印时出现额外字符

c - fgets 可能会由于其他 scanf 的原因而被忽略

c - 为什么我的测试用例总是失败?