2013-04-26 9 views
9

Próbuję ustawić przykład wątku c11 w xcode ... ale nie wydaje się, że ma nagłówek threads.h, choć nie jest complaning o makro opisane tutaj:
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdfclang c11 threads.h nie znaleziono

__STDC_NO_THREADS__The całkowitą stałą 1, ma na celu wskazanie, że realizacja nie obsługuje nagłówek <threads.h>.

showing dialect showing error

+1

Wygląda na to, że nie znalazł 'threads.h' pliku. –

+1

tak też mi się wydawało :) to powinno być częścią biblioteki startdard w c11, jeśli makro __STDC_NO_THREADS__ nie jest 1 –

+0

Domyślam się, że powinieneś sprawdzić ten folder i sprawdzić, czy 'threads.h' jest faktycznie tam, a jeśli tak, zobacz, czy kompilator ma do niego dostęp. –

Odpowiedz

1

Wygląda prawie nic obsługuje wątki wyposażone w C11 ... może postaram się dostać do brzękiem ...

+0

To może być prostsze, jeśli chcesz budować na innym Biblioteka C Ostatnio zajrzałem do musl (http://www.musl-libc.org/) i tam takie zadanie wydaje się wykonalne. Jeśli byłbyś zadowolony z otoki wokół POSIX-a, mój P99 (p99.gforge.inria.fr) mógłby wystarczyć. –

+0

Nigdy nie patrzyłem na żadne alternatywy (będę teraz) ... to będzie musiało być w glibc/gcc/clang ostatecznie ... jeśli jest to tylko opakowanie dla wątków POSIX, gdzie są one obsługiwane ... to Myślę, że to wystarczy. –

1

Z brzękiem na moim komputerze (v 3.2 na Ubuntu/Linux), którego makro testowe nie jest zdefiniowane. Obsługa tej funkcji będzie wymagać obsługi w bibliotece C, która zazwyczaj nie jest dostarczana z kompilatorem. Więc w zasadzie odpowiedź na clang nie będzie się znacznie różnić niż dla gcc, zwykle opiera się na tej samej bibliotece C, a mianowicie glibc, patrz here for answer for gcc.

-15

w C++ 11, chcesz #include <thread>, nie threads.h

#include <iostream> 
#include <thread> 

void fun() { std::cout << "fun!" << std::endl; } 

int main() { 
    std::thread t (fun); 
    t.join(); 
    return 0; 
} 
+2

prawda, dotyczy to znacznie mniej podkręconego C11 –