warpctc-caffe环境配置相关问题

warpctc-caffe这是一个很古老的项目,到目前位置应该有六七年了,对应的caffe版本也很古老。即便新版本的caffe与较新的cuda兼容也不好。

类似问题:warning: enumeration value ‘CUDNN_STATUS_RUNTIME_PREREQUISITE_MISSI not handled in switch解决方案:

报错信息:

下载最新版本的caffe,将你的项目中的里的以下几个文件替换成最新版caffe对应的include和src文件夹里面的:

你的算法原路径/include/caffe/util/cudnn.hpp
你的算法原路径/include/caffe/layers/下面cudnn_开头的所有文件
你的算法原路径/src/caffe/util/cudnn.cpp
你的算法原路径/src/caffe/layers/ 下面cudnn_开头的所有文件

error: ‘accumulate’ is not a member of ‘std’

因为项目中源码用到了numeric::accumulate(),而出错的文件没有包含该库,在出错源文件的预编译部分添加:

#include <numeric>

OpenCV4和OpenCV3

如果安装的是opencv4,编译之前还是要先进行以下几步:

sed -i s/CV_LOAD_IMAGE_COLOR/cv::IMREAD_COLOR/g src/caffe/layers/window_data_layer.cpp
sed -i s/CV_LOAD_IMAGE_COLOR/cv::IMREAD_COLOR/g src/caffe/util/io.cpp
sed -i s/CV_LOAD_IMAGE_COLOR/cv::IMREAD_COLOR/g src/caffe/test/test_io.cpp
sed -i s/CV_LOAD_IMAGE_GRAYSCALE/cv::ImreadModes::IMREAD_GRAYSCALE/g src/caffe/util/io.cpp
sed -i s/CV_LOAD_IMAGE_GRAYSCALE/cv::ImreadModes::IMREAD_GRAYSCALE/g src/caffe/test/test_io.cpp

fatal error: caffe/proto/caffe.pb.h: No such file or directory

使用编译预测cpp源文件时出现的错误,解决方法: 进入到CAFFE_ROOT/src/caffe/proto/目录:

protoc  caffe.proto --cpp_out=CAFFE_ROOT/include/caffe/caffe/proto

undefined reference to `google::LogMessageFatal::LogMessageFatal(char const*, int)’

编译时没添加链接库,解决方法:

g++ -lglog

如果使用的IDE,可以将链接库作为参数添加进去,不需要每次 编译都添加。

其它方面,参考该文:

经验分享 程序员 微信小程序 职场和发展