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

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