Rumah >pembangunan bahagian belakang >C++ >Mengapakah Program C Multithreaded Saya Melemparkan Ralat \'Operasi Tidak Dibenarkan\' Walaupun Menggunakan \'-pthread\'?

Mengapakah Program C Multithreaded Saya Melemparkan Ralat \'Operasi Tidak Dibenarkan\' Walaupun Menggunakan \'-pthread\'?

Linda Hamilton
Linda Hamiltonasal
2024-10-30 23:02:30823semak imbas

Why Does My C   Multithreaded Program Throw an

Menyusun Kod Berbilang Thread dengan g : Menyelesaikan Masalah Ralat Masa Jalan

Masalah:

Walaupun menggunakan bendera '-pthread' yang disyorkan , anda menghadapi ralat masa jalan semasa cuba menyusun dan melaksanakan program C berbilang benang dengan g . Mesej ralat menunjukkan "Operasi tidak dibenarkan" apabila cuba menggunakan objek 'std::thread'.

Penyelesaian Kemungkinan:

Isu mungkin disebabkan oleh pepijat dalam pengkompil g. Untuk menyelesaikan masalah ini, gunakan penyelesaian berikut:

Tambahkan bendera '-Wl,--no-as-needed' pada arahan kompilasi. Bendera ini mengarahkan pemaut untuk tidak mempertimbangkan simbol 'pthreads' seperti yang diperlukan untuk program.

Arahan Kompilasi Disemak:

g++ main.cpp -o main.out -pthread -std=c++11 -Wl,--no-as-needed

Penyelesaian ini sepatutnya membolehkan anda susun dan laksanakan kod berbilang benang anda dengan jayanya.

Nota:

Isu ini telah dilaporkan pada penjejak pepijat g rasmi dan pembetulan dijangka pada masa hadapan. Walau bagaimanapun, penyelesaian yang disediakan di sini harus menyelesaikan masalah itu buat masa ini.

Atas ialah kandungan terperinci Mengapakah Program C Multithreaded Saya Melemparkan Ralat \'Operasi Tidak Dibenarkan\' Walaupun Menggunakan \'-pthread\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn