GNU/Linux >> Belajar Linux >  >> Ubuntu

Program Utas C++ Sederhana Tidak Dapat Dikompilasi?

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)


Ubuntu
  1. memeriksa apakah biner dikompilasi dengan -statis

  2. Bisakah Clang mengkompilasi kode dengan GCC yang dikompilasi .a libs?

  3. Bagaimana cara mendapatkan id utas dari pthread di program linux c?

  1. Cara Menginstal VirtualBox di Ubuntu

  2. Bagaimana Cara Menjalankan Program C++ Setiap Kali Flash Drive Usb Dimasukkan?

  3. Tidak Dapat Terhubung Ke Nirkabel 13.10?

  1. Tidak bisakah Echo $catalina_home?

  2. Tidak Dapat Mengupgrade Gnupg?

  3. Tidak Dapat Menginstal Virtualbox Pada 15.04?