Saltar al contenido

Error de compilación usando cmake: no se puede encontrar -lpthreads

Agradecemos tu apoyo para compartir nuestros tutoriales en referencia a las ciencias de la computación.

Solución:

El problema estaba ocurriendo al ejecutar cmake. Sin embargo, en este caso, cmake no era el problema, el error era silencioso y el error/advertencia relacionado con -lpthreads era lo único que se escribía en el archivo de registro de errores de cmake, aunque eso no causaba ningún problema. Hice una versión mínima de cmakelists.txt y comencé a probarlo línea por línea hasta que encontré qué paquete estaba causando que se detuviera: finalmente descubrí que era una versión que no coincidía…

Sugerencia: busque el mensaje de error real

Por lo general, buscaría el último mensaje de error. Sin embargo, esta estrategia (a menudo útil) en tales casos lleva por mal camino.

Lo que estás mirando es el CMakeCache.txtla CMakeOutput.log o el CMakeError.log. ¿Cómo viene? Cuando algunas de las macros o pruebas en la fase de configuración fallan, CMake “útilmente” vuelca estos archivos en la salida. Desafortunadamente, estos archivos pueden tener miles de líneas y, por lo general, contienen muchos “*** Error: xyz" entradas, para varias comprobaciones de configuración. El de “-lpthreads“Por casualidad resultó ser el último en el registro…

Solución: revisar el registro desde el parte superioridentifique la sección con los controles de configuración, busque el última comprobación de configuración antes del punto, donde CMake identifica la falla y vuelca sus registros. También puede intentar buscar el texto “Configuring incomplete, errors occurred!

Por lo general, encontrará un mensaje de error real muy preciso allí, o al menos encontrará el nombre / ruta del macro o función llamada en último lugar, y esto le permite determinar con precisión lo que realmente salió mal.

Esto parece ser un error de CMake de larga data. Algo más va mal, CMake se confunde e informa este problema falso en lugar del error real.

Busque “hilo” en su archivo CMakeLists.txt y elimínelo temporalmente.

En mi caso, esto identificó inmediatamente una biblioteca (o más bien, su paquete de desarrollo) que faltaba. Lo instalé, lo agregué a debian/control‘s Build-Depends: sección, recompilado, todo funcionó.

en un Ubuntu 18.04.1 LTS esta instalación me dio todos los archivos necesarios:

apt -y install libboost-tools-dev libboost-thread1.62-dev magics++

/usr/lib/x86_64-linux-gnu/libpthread.a
/usr/lib/x86_64-linux-gnu/libpthread.so
/usr/lib/x86_64-linux-gnu/libpthread_nonshared.a

no más errores “/usr/bin/ld: no se puede encontrar -lpthreads” después

Si para ti ha resultado de provecho este post, agradeceríamos que lo compartas con más programadores así contrubuyes a dar difusión a nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *