Tôi đã biên soạn & cài đặt gcc4.4 bằng macports.std :: lỗi thread (thread không phải là thành viên của std)
Khi tôi cố gắng biên dịch sử dụng -> g ++ -g Wall -ansi -pthread -std = C++ 0x main.cpp ...:
#include <thread>
...
std::thread t(handle);
t.join();
....
Lợi nhuận biên dịch:
cserver.cpp: In member function 'int CServer::run()':
cserver.cpp:48: error: 'thread' is not a member of 'std'
cserver.cpp:48: error: expected ';' before 't'
cserver.cpp:49: error: 't' was not declared in this scope
Nhưng std::cout <<...
biên dịch tốt ..
Có ai giúp tôi không?
Nếu bạn nhìn vào tiêu đề chủ đề, dường như lớp chỉ tồn tại '# nếu định nghĩa (_GLIBCXX_HAS_GTHREADS) && định nghĩa (_GLIBCXX_USE_C99_STDINT_TR1) ' . Tôi không chắc chắn, những gì bạn phải làm để có những người được xác định. – UncleBens
@UncleBens: Tôi tin rằng chúng được xác định trực tiếp bởi -pthread và -std = C++ 0x. Omitting -pthread gây ra lỗi seg: http://gcc.gnu.org/ml/gcc-help/2009-04/msg00208.html –
Chỉ cần cập nhật mới nhất: MacPorts gcc 4.7.0 hỗ trợ/biên dịch std :: thread, trong khi 4.6.3 thì không. –