GNU/Linux >> Znalost Linux >  >> Ubuntu

Jednoduchý program vláken C++ nelze zkompilovat?

Toto je můj první vícevláknový program. Ale když byl kompilován, došlo k chybě propojení. Část chybové zprávy:

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

Přijatá odpověď:

Musíte kompilovat pomocí -pthread jako možnost kompilace.

Dostal jsem váš kód ke kompilaci s tímto (i když jsem přidal -Wall funkce, která mi zobrazí všechna varovná upozornění):

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

(kde foo.cpp byl vstupní název souboru, který jsem použil obsahující váš kód)


Ubuntu
  1. Jak nainstalovat VirtualBox na Ubuntu

  2. Jak spustit program C++ vždy, když je vložen USB flash disk?

  3. Nemůžete se připojit k bezdrátové síti 13.10?

  1. Nelze otočit monitor 20.04?

  2. Jak ukončit vlákno v programu C ( příklad pthread_exit )

  3. Jak vytvářet vlákna v Linuxu (pomocí ukázkového programu C)

  1. Bezpečnost nového operátorského vlákna v C++ v linuxu a gcc 4

  2. C++ Boost ASIO jednoduchý periodický časovač?

  3. kontrola, zda je binární soubor zkompilován s -static