Menyelesaikan Isu Pemautan apabila menggunakan std::thread dengan GCC pada Linux
Dalam bidang multithreading dengan C , Perpustakaan Standard C menyediakan kelas std::thread. Apabila cuba menggunakan std::thread dengan GCC pada sistem Linux, ralat berikut mungkin timbul:
terminate called after throwing an instance of 'std::system_error' what(): Operation not permitted Aborted
Punca:
Ralat ini menunjukkan bahawa pemautan yang betul pilihan belum ditentukan untuk pengkompil menyelesaikan kebergantungan yang berkaitan dengan std::thread. Khususnya, pada Linux, perpustakaan pthread terlibat dalam pelaksanaan std::thread.
Penyelesaian:
Untuk menangani isu ini, pilihan pengkompil -pthread mesti diambil bekerja. Pilihan ini mengarahkan pengkompil untuk memautkan atur cara dengan perpustakaan pthread. Begini cara untuk menyusun kod dengan betul dengan pilihan pemautan yang sesuai:
g++ -std=c++0x test.cpp -pthread
Peletakan Pilihan Pemautan:
Adalah penting untuk ambil perhatian bahawa pilihan -pthread harus disenaraikan selepas fail sumber(.cpp) semasa menyusun. Ini memastikan bahawa pengkompil menyelesaikan kebergantungan dengan betul.
Perintah Disemak:
Selepas menambah pilihan -pthread, arahan kompilasi yang disemak akan muncul sebagai:
g++ -std=c++0x test.cpp -pthread
Dengan memasukkan pilihan -pthread, kod akan berjaya menyusun dan jalankan, membenarkan std::thread berfungsi seperti yang dimaksudkan untuk multithreading dalam persekitaran Linux anda.
Atas ialah kandungan terperinci Mengapa Kod C `std::thread` Saya Gagal Dipautkan pada Linux dengan GCC dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!