2013-12-02 3 views
10

Я хотел бы использовать новые атомные операции, предоставляемые стандартом C11. Однако, пытаясь #include соответствующий файл заголовка дает мне это:<stdatomic.h> в GCC 4.8?

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 

EDIT: Спасибо за быстрые ответы ,

В случае, если кто натыкается на это от Google с тем же вопросом, вот исправление в промежутке, пока они не выпустить GCC 4.9:

UNIX Portable Atomic Operations

+0

Это была опечатка в копировании, я починю –

ответ

15

Этот файл отсутствует. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58016

Он был зафиксирован только в GCC 4.9, а его релиз отмечает, говорит (http://gcc.gnu.org/gcc-4.9/changes.html)

+0

Да точно, я проверил, что :) – Jekyll

+0

@Jekyll спасибо, не имеют 4.9 на работе, поэтому не удалось проверить, но это красное в примечаниях к выпуску около недели назад. Хотя я сомневаюсь, что простое копирование файла с 4.9 в предыдущие версии будет работать - поскольку он сильно использует '_Atomic', который выглядит недоступным в предыдущих версиях. – keltar

+0

У меня также нет 4.9, но я мог проверить (см. Ниже), что предыдущие версии поддерживают только C++ std :: atomic extension. Я искал на своем пути, и я подтвердил, что это правда. Более того, как представляется, документировано, напомните, что ошибка была отклонена, в основном говоря, что «неполная документально подтвержденная функция» не может быть представлена ​​как ошибка. – Jekyll

 Смежные вопросы

  • Нет связанных вопросов^_^