编译caffe ssd的坑
2018-07-11 本文已影响0人
cheerss
网上有很多教程,这个不再赘述过程,例如:https://blog.csdn.net/xunan003/article/details/78427446
- 编译过程提示找不到<opencv2/opencv.hpp>,是哪个文件不重要,总之是opencv找不到,这个有点烦,Makefile.config里对于其他各种依赖库都是可以手动指定库的位置,可偏偏opencv不行,
我的opencv路径是/usr/local/opencv-3.3.1
,我选择的解决办法是跑到/usr/include/
下建立一个软连接sudo ln -s /usr/local/opencv-3.3.1/include/opencv2 /usr/include/opencv2
,然后再设置一下寻找.so
文件的路径export LD_LIBRARY_PATH=/usr/local/opencv-3.3.1/lib
以及gcc库路径变量export LIBRARY_PATH=/usr/local/opencv-3.3.1/lib
就可以顺利编译了
哇!上面的方法太蠢了。其实在Makefile.config中就有INCLUDE_DIRS和LIBRARY_DIRS
,相应设置一下就好了,把opencv的头文件和库的路径加到这个最后。
- 报错
nvcc fatal : Unsupported gpu architecture 'compute_20'
,主要是我的cuda是9.0+,所以Makefile.config需要有响应修改。要删除这两行(参考:https://blog.csdn.net/kemgine/article/details/78781377)
-gencode arch=compute_20,code=sm_20 \
-gencode arch=compute_20,code=sm_21 \
- 报错
/usr/bin/ld: cannot find -lhdf5_hl
/usr/bin/ld: cannot find -lhdf5
我的hdf5在这儿/usr/lib/x86_64-linux-gnu/hdf5/serial
,所以要把这个路径加到LIBRARY_DIRS(头文件在/usr/include/hdf5/serial
)