web-dev-qa-db-ja.com

GCC 4.8の<stdatomic.h>?

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

編集:Swift返信ありがとうございます。

同じ質問で誰かがGoogleからこれにつまずいた場合、GCC 4.9をリリースするまでの暫定的な修正を以下に示します。

NIXポータブルアトミック操作

19
Patrick Collins

このファイルがありません。 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58016

リリースノートに記載されているように、gcc 4.9でのみ修正されました( http://gcc.gnu.org/gcc-4.9/changes.html

21
keltar