GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Non è possibile compilare un semplice programma di thread C++?

Quello che segue è il mio primo programma multi-thread. Ma mentre è stato compilato, c'è un errore di collegamento. La parte del messaggio di errore:

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;
}

Risposta accettata:

Devi compilare con -pthread come opzione di compilazione.

Ho ottenuto il tuo codice da compilare con questo (anche se ho aggiunto il -Wall funzione per darmi tutti gli avvisi):

g++ -pthread -out foo.exe foo.cpp

(dove foo.cpp era il nome del file di input che ho usato contenente il tuo codice)


Ubuntu
  1. Come installare VirtualBox su Ubuntu

  2. Come eseguire il programma C++ ogni volta che viene inserita un'unità flash USB?

  3. Non riesci a connetterti a Wireless 13.10?

  4. Non riesci a fare eco $catalina_home?

  5. Non riesci a ruotare il monitor su 20.04?

Come compilare C, C++ e Java utilizzando Terminal su Linux

C++ nuovo operatore thread safety in linux e gcc 4

C++ Boost ASIO semplice timer periodico?

Come collego libcurl al mio programma c++ in Linux?

Clang può compilare codice con le librerie .a compilate da GCC?

Come ottenere l'ID thread di un pthread nel programma linux c?