GNU/Linux >> Tutoriales Linux >  >> Linux

Error de vinculación:falta DSO en la línea de comando

Con suerte, esto será de ayuda para aquellos, como yo, que son nuevos en Linux y no encuentran nada relacionado con Linux particularmente obvio.

Como lo señaló talonmies, no puedo vincular indirectamente y, como tal, necesito especificar las bibliotecas adicionales requeridas por las bibliotecas que estoy usando. Es decir, si vinculo la biblioteca A, que requiere las bibliotecas B y C, necesito vincular las tres bibliotecas para que el programa se vincule correctamente.

Para encontrar qué otras bibliotecas se necesitaban, usé el pkg-config comando, para el cual encontré una guía aquí. Ejecutando pkg-config --print-requires --print-requires-private glfw3 dio el siguiente resultado, que es la lista de paquetes requeridos por glfw3.

x11
xrandr
xi
xxf86vm
gl

Luego pude encontrar qué bibliotecas necesitaba incluir ejecutando pkg-config --libs , seguido del nombre de la biblioteca. Por ejemplo, pkg-config --libs x11 produjo -lX11 .

Nota:puede pasar varios elementos a pkg-config como entrada, entonces ejecutando

pkg-config --libs $(pkg-config --print-requires --print-requires-private glfw3)

imprimirá todas las bibliotecas adicionales que necesita vincular (-lX11 -lXrandr -lXi -lXxf86vm -lGL ).

Mi programa ahora se vincula con éxito, espero que esto sea útil para cualquier persona con un problema similar.


Su enlazador necesita la biblioteca X11, debe especificar -lX11 para enlazar

Prueba

/usr/local/cuda/bin/nvcc -arch=compute_30 -code=sm_30,compute_30 -o Main.o Display.o FileUtil.o Timer.o NeuralNetwork.o -L/usr/lib -L/usr/local/lib -L/usr/lib/x86_64-linux-gnu -L/usr/local/cuda/lib64 -lGLEW -lglfw3 -lGL -lGLU -lcuda -lcudart -lX11

Intente agregar -pthread al final de la lista de bibliotecas (línea de comando) en el Makefile.

Funcionó para mí.


Linux
  1. 4 formas de enviar archivos adjuntos de correo electrónico desde la línea de comandos de Linux

  2. QuickWall - Herramienta de línea de comandos Configuración de fondos de pantalla de Unsplash

  3. referencia indefinida al error del símbolo '_ZN5boost6system15system_categoryEv'

  4. ¿Dividir video MPEG desde la línea de comando?

  5. ¿Cómo puedo escribir en dmesg desde la línea de comandos?

Programe hardware desde la línea de comandos de Linux

youtube-dl:descargue videos de Youtube desde la línea de comandos de Linux

Cómo reiniciar (reiniciar) Linux desde la línea de comandos

Buscar productos de Amazon desde la línea de comandos

Enviar correo electrónico en Linux desde la línea de comandos

¿Cómo obtengo mi dirección IP desde la línea de comandos?