编译Caffe时出错求助:Ubuntu 16.04虚拟机无Nvidia显卡环境问题
解决Ubuntu 16.04无Nvidia硬件编译Caffe的问题
Hey there, sorry to hear you've been stuck on this for two days—let's get you sorted out with CPU-only Caffe right away! Since you don't have Nvidia GPU hardware, the key here is to build the CPU-only version of Caffe, which skips all GPU-related dependencies and code. Here's a step-by-step guide:
1. 安装CPU版依赖
打开终端,先安装所有不需要GPU支持的必备包:
sudo apt-get update sudo apt-get install build-essential cmake git pkg-config sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler sudo apt-get install --no-install-recommends libboost-all-dev sudo apt-get install libatlas-base-dev sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
这些都是CPU模式Caffe需要的基础依赖,我们完全跳过了CUDA、cuDNN等GPU专属包。
2. 配置Makefile.config
如果还没获取Caffe源码,可以克隆官方仓库或使用已下载的源码包,然后进入Caffe目录:
cd caffe
复制示例配置文件作为基础配置:
cp Makefile.config.example Makefile.config
用你习惯的编辑器(比如nano或vim)打开Makefile.config,做以下关键修改:
- 找到
# CPU-only switch (uncomment to build without GPU support)这一行,去掉开头的#,启用CPU-only模式:CPU_ONLY := 1 - 调整
INCLUDE_DIRS和LIBRARY_DIRS,加入Ubuntu 16.04特有的HDF5路径(很容易遗漏):INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
3. 编译Caffe
先清理之前编译失败留下的残留文件,避免冲突:
make clean
开始编译,用-j参数加上虚拟机的CPU核心数(比如-j4对应4核)来加速:
make all -j4 make test -j4 make runtest -j4
如果需要Caffe的Python接口,再执行:
make pycaffe -j4
常见问题排查
- HDF5相关错误:检查是否已经把
/usr/include/hdf5/serial和/usr/lib/x86_64-linux-gnu/hdf5/serial路径加入到INCLUDE_DIRS和LIBRARY_DIRS中,这是Ubuntu 16.04下最常见的修复手段。 - OpenCV冲突:使用Ubuntu仓库默认的
libopencv-dev包(2.4.x版本),它和Caffe完全兼容,不要手动安装更高版本的OpenCV,除非你清楚自己在做什么。 - 权限错误:永远不要用
sudo执行make命令,用普通用户编译即可,只有安装依赖时才需要sudo。
按这些步骤操作,应该就能顺利解决编译错误,在你的虚拟机上运行CPU版Caffe了!
内容的提问来源于stack exchange,提问作者jeyun park
相关产品推荐
相关产品推荐

