GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Einfaches C++-Thread-Programm kann nicht kompiliert werden?

Das Folgende ist mein 1. Multithread-Programm. Aber während es kompiliert wurde, gibt es einen Verknüpfungsfehler. Der Teil der Fehlermeldung:

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

Akzeptierte Antwort:

Sie müssen mit -pthread kompilieren als Kompilieroption.

Ich habe Ihren Code zum Kompilieren bekommen (obwohl ich die -Wall hinzugefügt habe Funktion, um mir alle Warnhinweise zu geben):

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

(wobei foo.cpp war der von mir verwendete Eingabedateiname mit Ihrem Code)


Ubuntu
  1. So installieren Sie VirtualBox auf Ubuntu

  2. Kann Gnupg nicht aktualisieren?

  3. Kann Virtualbox am 15.04 nicht installieren?

  4. Wie man ein C-Programm mit gdb in 6 einfachen Schritten debuggt

  5. C++ neue Operator-Thread-Sicherheit in Linux und gcc 4

So kompilieren Sie C, C++ und Java mit Terminal unter Linux

So erstellen Sie Threads in Linux (mit einem C-Beispielprogramm)

C++ Boost ASIO einfacher periodischer Timer?

Wie verknüpfe ich libcurl mit meinem C++-Programm unter Linux?

Überprüfen, ob eine Binärdatei mit -static kompiliert wurde

Wie führe ich ein C++-Programm in einem anderen C++-Programm aus?