darknet /usr/bin/ld: cannot find -lcuda

ubuntu18.04 , cuda10.0 编译darknet出现/usr/bin/ld: cannot find -lcuda

cannot find -lcuda 意思是编译时未找到libcuda库。

首先查看Makefile这中cuda路径是否正确,即下面第四行lib路径

ifeq ($(GPU), 1)
COMMON+= -DGPU -I/usr/local/cuda-10.0/include/
CFLAGS+= -DGPU
LDFLAGS+= -L/usr/local/cuda-10.0/lib64 -lcuda -lcudart -lcublas -lcurand                                                                                      
endif

其次查看自己cuda对应路径下 ls /usr/local/cuda-10.0/lib64/是否有libcuda.so这个库。如果没有问题自然就找到了。

楼主这里有,但是libcuda.so是红色显示的,感觉那里不对。ls -lh /usr/local/cuda-10.0/lib64/发现是其建立libcuda.so.1的软链接不存在。

所以找到正确的libcuda.so.1建立软链接即可。建立和修改软链接成功一个即可。

  • 定位库 locate libcuda

  • 建立软链接 sudo ln -s /usr/lib/x86_64-linux-gnu/libcuda.so.1 /usr/local/cuda-10.0/lib64/libcuda.so

  • 修改软链接 sudo ln -snf /usr/lib/x86_64-linux-gnu/libcuda.so.1 /usr/local/cuda-10.0/lib64/libcuda.so

  • 重新编译
    make clean
    make

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章