GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Le programme de thread C++ simple ne peut pas être compilé ?

Ce qui suit est mon 1er programme multi-thread. Mais alors qu'il a été compilé, il y a une erreur de liaison. La partie du message d'erreur :

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

Réponse acceptée :

Vous devez compiler avec -pthread comme option de compilation.

J'ai eu votre code à compiler avec ceci (bien que j'ai ajouté le -Wall fonction pour me donner tous les avis d'avertissement):

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

(où foo.cpp était le nom du fichier d'entrée que j'ai utilisé contenant votre code)


Ubuntu
  1. Comment exécuter un programme C++ à chaque fois qu'une clé USB est insérée ?

  2. Impossible d'écho $catalina_home ?

  3. Impossible de faire pivoter le moniteur le 20.04 ?

  4. Comment déboguer le programme C en utilisant gdb en 6 étapes simples

  5. imprimer la pile d'appels en C ou C++

Comment compiler C, C++ et Java à l'aide de Terminal sous Linux

C++ nouvel opérateur de sécurité des threads dans Linux et gcc 4

Minuterie périodique simple C++ Boost ASIO ?

Comment lier libcurl à mon programme c++ sous Linux ?

Clang peut-il compiler du code avec des bibliothèques .a compilées par GCC ?

Comment obtenir l'identifiant de thread d'un pthread dans le programme linux c?