GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿No se puede compilar el programa simple de subprocesos de C++?

El siguiente es mi primer programa de subprocesos múltiples. Pero mientras se compiló, hay un error de enlace. La parte del mensaje de error:

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

Respuesta aceptada:

Necesitas compilar con -pthread como opción de compilación.

Obtuve su código para compilar con esto (aunque agregué el -Wall función para darme todos los avisos de advertencia):

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

(donde foo.cpp fue el nombre de archivo de entrada que usé que contenía su código)


Ubuntu
  1. Cómo instalar VirtualBox en Ubuntu

  2. ¿Cómo ejecutar el programa C++ cada vez que se inserta una unidad flash USB?

  3. ¿No puede conectarse a Wireless 13.10?

  4. ¿No se puede hacer eco de $catalina_home?

  5. ¿No se puede rotar el monitor en 20.04?

Cómo compilar C, C++ y Java usando Terminal en Linux

¿Cómo vinculo libcurl a mi programa C++ en Linux?

comprobando si un binario compilado con -static

¿Cómo ejecutar un programa C++ dentro de otro programa C++?

¿Puede Clang compilar código con GCC compilado .a libs?

¿Cómo obtener la identificación del subproceso de un pthread en el programa linux c?