Berikut ini adalah program multi-utas pertama saya. Tetapi saat dikompilasi, ada kesalahan penautan. Bagian dari pesan kesalahan:
std::thread::thread<void (&)(int), int&>(void (&)(int), int&):
test.cpp (.text._ZNSt6threadC2IRFviEJRiEEEOT_DpOT0_[_ZNSt6threadC5IRFviEJRiEEEOT_DpOT0_]+0x33): undefined reference pthread_create
collect2: error ld return 1
#include<thread>
void f(int i) {}
int main() {
std::thread t(f, 1);
t.join();
return 0;
}
Jawaban yang Diterima:
Anda perlu mengkompilasi dengan -pthread
sebagai opsi kompilasi.
Saya mendapatkan kode Anda untuk dikompilasi dengan ini (meskipun saya menambahkan -Wall
berfungsi untuk memberi saya semua pemberitahuan peringatan):
g++ -pthread -out foo.exe foo.cpp
(di mana foo.cpp
adalah nama file input yang saya gunakan berisi kode Anda)
Bagaimana Cara Meningkatkan Node.js Dari 4.2 Ke 6.11.0 Di Ubuntu 16.04?
Update-manager Terjebak Saat Menginstal Paket Untuk Meningkatkan Dari 13,10 ke 14,04?