Saya juga mengalami beberapa masalah (Ubuntu 13.04 64-bit, g ++ - 4.8, eclipse Juno 3.8.1, CDT 6.0.0). Banyak hal yang disebutkan di atas, maaf untuk mengulanginya, tetapi juga saya kesulitan menggunakannya
std::thread
sebagai bagian dari c ++ 11 (menambahkan -pthread untuk linker menyelesaikan masalah itu). Bagaimanapun, akhirnya pengaturan ini bekerja dengan baik:
Project -> Properties -> C / C ++ Build -> Settings -> Miscellaneous. Tambahkan
-std=c++11
bendera untuk kompiler GCC dan G ++. Klik Terapkan.
Untuk tautan, jendela yang sama, Miscellaneous, bendera Linker, menambahkan
-pthread
bendera. Pengaturan perpustakaan bersama, nama objek bersama, tambahkan
-Wl,--no-as-needed
panji juga. Klik Terapkan.
C / C ++ Umum -> Jalur dan simbol -> Simbol TAB, GNU C ++ dipilih, Tambahkan
__GXX_EXPERIMENTAL_CXX0X__
(Tidak bernilai)
bendera. Klik Terapkan.
C / C ++ Umum -> Preprocessor Sertakan jalur .. -> Tab Penyedia: centang
Pengaturan Kompiler bawaan CDT GCC
dan untuk "Perintah untuk mendapatkan spesifikasi kompiler", tambahkan
-std=c++11
bendera. Hapus centang Bagikan. Klik Terapkan.
Entri Pengaturan Pembuatan Managemen CDT, periksa ini juga. Hapus centang dua lainnya. Klik Terapkan.
Kembali ke tab Entri, GNU C ++ CDT Managments Entri Pengaturan Pembuatan, sekarang Anda akan melihat ditambahkan
__GXX_EXPERIMENTAL_CXX0X__
masuk.
Itu dia. Saat coding, mengetik
std::
sekarang dapat menyelesaikan secara otomatis kelas utas misalnya, build seharusnya berfungsi dengan baik dan seharusnya tidak ada
std::system_error'what(): Enable multithreading to use std::thread: Operation not permitted
saat runtime.
std::unique_ptr<char[]>