昨天在新機器上配置好了cuda和opencv,於是想在新機器上跑一下yolo,使用我之前用過的darknet,GitHub上下載下來之后,修改為gpu版本的,然后直接make,但是出現一個令人崩潰的錯誤:fatal error:opencv/opencv.hpp:no such file or directory,查了好久終於找到了答案,現記錄一下。
錯誤長這樣,圖片來自網絡,侵刪。
解決方案:
sudo apt install libopencv-dev
安裝完成之后再次進行make以為要成功了,結果又有了一個新的bug(說好的成功呢555)。又找了半天,終於找到了解決辦法:
錯誤信息:
./src/network_kernels.cu(706): error: identifier "cudaStreamCaptureModeGlobal" is undefined
./src/network_kernels.cu(706): error: too many arguments in function call
2 errors detected in the compilation of "/tmp/tmpxft_00005390_00000000-6_network_kernels.cpp1.ii".
原因在於darknet在之前的一次更新后,貌似與CUDA 10.0版本不兼容,而我正好下的CUDA 10.0,:(。於是在git clone的目錄下退回之前的版本就行。
git checkout 64efa721ede91cd8ccc18257f98eeba43b73a6af
make clean
make
終於大功告成。真不容易!
Reference
最后,感謝 ccccxxxxcccc,aldisio兩位大神提供的解決辦法。