Soy novato en Ubuntu y uso Ubuntu 14.04 de 64 bits. Quiero makeun proyecto que use cuday opencvrecibí el siguiente error al ejecutarcmake . && make
Linking CXX executable ground_estimation
/usr/bin/ld: cannot find -lcudart
collect2: error: ld returned 1 exit status
make[2]: *** [ground_estimation] Error 1
make[1]: *** [CMakeFiles/ground_estimation.dir/all] Error 2
make: *** [all] Error 2
Esta es la salida de ld -lcudart --verbose
attempt to open /usr/x86_64-linux-gnu/lib64/libcudart.so failed
attempt to open /usr/x86_64-linux-gnu/lib64/libcudart.a failed
attempt to open //usr/local/lib/x86_64-linux-gnu/libcudart.so failed
attempt to open //usr/local/lib/x86_64-linux-gnu/libcudart.a failed
attempt to open //usr/local/lib64/libcudart.so failed
attempt to open //usr/local/lib64/libcudart.a failed
attempt to open //lib/x86_64-linux-gnu/libcudart.so failed
attempt to open //lib/x86_64-linux-gnu/libcudart.a failed
attempt to open //lib64/libcudart.so failed
attempt to open //lib64/libcudart.a failed
attempt to open //usr/lib/x86_64-linux-gnu/libcudart.so failed
attempt to open //usr/lib/x86_64-linux-gnu/libcudart.a failed
attempt to open //usr/lib64/libcudart.so failed
attempt to open //usr/lib64/libcudart.a failed
attempt to open //usr/local/lib/libcudart.so failed
attempt to open //usr/local/lib/libcudart.a failed
attempt to open //lib/libcudart.so failed
attempt to open //lib/libcudart.a failed
attempt to open //usr/lib/libcudart.so failed
attempt to open //usr/lib/libcudart.a failed
libcudartexiste /usr/local/cuda/lib64y también agregué a Library Path:
echo $LD_LIBRARY_PATH
/usr/lib/nvidia-current:/usr/local/cuda/lib64:/usr/local/cuda/lib:
Esta es la salida de ls /usr/local/cuda/lib64:
libcublas_device.a libcufftw.so.6.0.37 libnppi.so.6.0
libcublas.so libcuinj64.so libnppi.so.6.0.37
libcublas.so.6.0 libcuinj64.so.6.0 libnpps.so
libcublas.so.6.0.37 libcuinj64.so.6.0.37 libnpps.so.6.0
libcudadevrt.a libcurand.so libnpps.so.6.0.37
libcudart.so libcurand.so.6.0 libnvblas.so
libcudart.so.6.0 libcurand.so.6.0.37 libnvblas.so.6.0
libcudart.so.6.0.37 libcusparse.so libnvblas.so.6.0.37
libcudart_static.a libcusparse.so.6.0 libnvToolsExt.so
libcufft.so libcusparse.so.6.0.37 libnvToolsExt.so.1
libcufft.so.6.0 libnppc.so libnvToolsExt.so.1.0.0
libcufft.so.6.0.37 libnppc.so.6.0 libOpenCL.so
libcufftw.so libnppc.so.6.0.37 libOpenCL.so.1
libcufftw.so.6.0 libnppi.so
¿Qué debo hacer esa ldbúsqueda en el /usr/local/cuda/lib64camino para encontrar libcudart?

ls /usr/local/cuda/lib64?Respuestas:
Haga un enlace simbólico a
libcudadonde loldestá buscando.fuente
LD_LIBRARY_PATHse utiliza para modificar el comportamiento de lasldconfigherramientas relacionadas y al buscar las bibliotecas, en el momento de la ejecución.La
ldherramienta de enlace no utiliza esta variable. Si desea usar una biblioteca ubicada en un directorio no estándar, debe usar el-Lparámetro del comando, así:Si ha descargado un proyecto existente y no sabe cómo modificar los Makefile (s) existentes sin romper la compilación completa, puede ejecutar make de la siguiente manera:
La variable LDFLAGS (que también se puede definir en el Makefile), se utiliza para pasar argumentos específicos al enlazador (
ld) cuando se inicia mediante las instrucciones de compilación.fuente
ld: warning: cannot find entry symbol _start; not setting start addresscuando corrold -lcuda -L/usr/local/cuda/lib64Puede crear enlaces en lugar de agregar las rutas:
fuente
¡Arreglé esto! Ve a tu archivo MAKE y cambia
a
(si eso es lo que tienes)
Funciono para mi
fuente
Resuelto
O copie todos los archivos de encabezado de /usr/lib/cuda-10.1/targets/x86_64-linux/include a / src / cpp /
Me funcionó en Pop-OS 19.10
fuente