2013-04-26 4 views
9

xcode에서 c11 스레드 예제를 설정하려고하는데 여기에 설명 된 매크로에 대해 불만을하지는 않지만 threads.h 헤더가없는 것 같습니다.
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdfclang c11 threads.h을 찾을 수 없습니다.

구현이 <threads.h> 헤더를 지원하지 않는 것을 표시하도록 한 상수 __STDC_NO_THREADS__The 정수. 거의 아무것도 스레드가 어쩌면 내가 그 소리에 그것을 얻을하려고합니다 ... C11의 기능을 지원하지 않습니다처럼

showing dialect showing error

+1

이는'threads.h' 파일을 찾지 못한 것 같은데, #include <thread>로합니다. –

+1

그게 나에게도 맘에 든다. :) __STDC_NO_THREADS__ 매크로가 1이 아닌 경우 c11의 시작일 라이브러리에 있어야한다. –

+0

그 폴더를 확인하고'threads.h'가 있는지 확인해야한다. 실제로 거기에 있고, 그렇다면 컴파일러가 그것에 액세스 할 수 있는지 확인하십시오. –

답변

1

내 컴퓨터에 그 소리와

+0

당신이 다른 것을 만들려고한다면 더 간단 할 수도 있습니다. C 라이브러리. 나는 최근에 musl (http://www.musl-libc.org/)을 들여다 보았다. 그런 일이 가능할 것 같다. POSIX에 대한 래퍼가 만족 스러우면 내 P99 (p99.gforge.inria.fr)로 충분할 수 있습니다. –

+0

나는 어떤 대안도 본적이 없다. (나는 지금 할 것이다.) ... 결국 glibc/gcc/clang에 있어야 할 것이다 ... 만약 그들이 지원되는 posix 쓰레드에 대한 래퍼 일 뿐이라면 ... 나는 그것이 충분할 것이라고 생각한다. –

1

... 보이는 (V 3.2 on 우분투/리눅스)는 기능 테스트 매크로가 정의되지 않았다. 이 기능을 지원하려면 일반적으로 컴파일러와 함께 제공되지 않는 C 라이브러리에서 지원해야합니다. 그래서 clang에 대한 대답은 gcc와 크게 다르지 않을 것입니다. 보통 같은 C 라이브러리, 즉 glibc를 기반으로합니다 (here for answer for gcc 참조).

-15

는 C++ 11에서는하지 threads.h

#include <iostream> 
#include <thread> 

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

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

사실, 이것은 특히 C11 –

관련 문제