2013-04-26 28 views
9

Tôi đang cố gắng thiết lập một ví dụ về chuỗi c11 trong xcode ... nhưng nó dường như không có tiêu đề threads.h, mặc dù nó không phải là complaning về macro được mô tả ở đây:
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdfclang c11 threads.h không tìm thấy

__STDC_NO_THREADS__The hằng số nguyên 1, nhằm chỉ ra rằng việc thực hiện không hỗ trợ header <threads.h>.

showing dialect showing error

+1

Hình như nó không tìm thấy 'threads.h' tập tin. –

+1

đó là những gì nó trông giống như tôi quá :) đó là nghĩa vụ phải là một phần của thư viện startdard trong c11 nếu vĩ mô __STDC_NO_THREADS__ không phải là 1 –

+0

Tôi đoán bạn nên kiểm tra xem thư mục và xem nếu 'threads.h' là trên thực tế, và nếu có, hãy xem trình biên dịch có quyền truy cập vào nó hay không. –

Trả lời

1

Hình như gần như không có gì hỗ trợ các chủ đề đặc trưng trong C11 ... có lẽ tôi sẽ cố gắng để làm cho nó vào kêu vang ...

+0

Điều đó có thể đơn giản hơn nếu bạn sẵn sàng xây dựng dựa trên một Thư viện C. Gần đây tôi đã nhìn vào musl (http://www.musl-libc.org/), và có một nhiệm vụ như vậy có thể là doable. Nếu bạn hài lòng với một trình bao bọc xung quanh POSIX, P99 của tôi (p99.gforge.inria.fr) có thể là đủ. –

+0

Tôi chưa bao giờ nhìn vào bất kỳ lựa chọn thay thế (tôi sẽ bây giờ) ... nó sẽ cần phải được glibc/gcc/clang cuối cùng ... nếu nó chỉ là một wrapper cho chủ đề posix nơi họ được hỗ trợ ... sau đó Tôi nghĩ điều đó sẽ đủ. –

1

Với sự kêu vang trên máy tính của tôi (v 3.2 trên ubuntu/linux) có tính năng macro thử nghiệm không được xác định. Hỗ trợ cho tính năng đó sẽ cần hỗ trợ trong thư viện C, thường không đi kèm với trình biên dịch. Vì vậy, về cơ bản câu trả lời cho clang sẽ không khác nhiều so với gcc, chúng thường xây dựng trên cùng một thư viện C, cụ thể là glibc, xem here for answer for gcc.

-15

Trong C++ 11, bạn muốn #include <thread>, không threads.h

#include <iostream> 
#include <thread> 

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

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

đúng, điều này đặc biệt về C11 ít bị thổi phồng hơn nhiều –