Windows安装Caffe遇"Invalid Integer Constant Expression"错误求助
解决Windows 10+VS2015安装Caffe时CUDA版本冲突的问题
你遇到的"Invalid Integer Constant Expression"错误,确实是因为Windows版Caffe(尤其是适配VS2015的早期分支)对CUDA 9的支持不完善,而系统默认调用了CUDA 9导致的。结合你同时安装了CUDA 8和9的情况,这里有几种可靠的方法强制Caffe编译时使用CUDA 8:
方法1:直接修改build_win.cmd脚本
这是最直接的方式,手动指定编译时使用的CUDA版本:
- 找到Caffe源码目录下的
scripts/build_win.cmd文件,用记事本或VS打开 - 查找脚本中设置CUDA版本的行,通常是类似
set CUDA_VERSION=9.0的语句,把它改成set CUDA_VERSION=8.0 - 同时检查是否有
set CUDA_PATH的配置,如果存在,将其路径改为你的CUDA 8安装目录,比如:set CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0 - 保存修改后,重新运行
build_win.cmd即可
方法2:调整系统环境变量优先级
让系统优先识别CUDA 8的路径,避免默认调用CUDA 9:
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」区域找到
PATH变量,点击「编辑」 - 将CUDA 8的
bin目录(比如C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin)拖动到CUDA 9对应目录的上方 - 同样,把CUDA 8的
libnvvp目录也移到CUDA 9目录的前面 - 重启命令提示符或VS2015,再执行编译脚本
方法3:在VS项目中手动指定CUDA版本(若已生成项目文件)
如果已经运行过一次脚本生成了VS解决方案,可以直接在项目中修改:
- 打开生成的
Caffe.sln文件 - 右键主项目(比如
libcaffe或caffe)→「属性」→「CUDA C/C++」→「Common」 - 在「CUDA Toolkit Version」的下拉菜单中选择
8.0 - 注意:所有依赖的子项目都需要同步设置成CUDA 8.0,之后点击「生成解决方案」即可
另外要确认你使用的Caffe分支是适配CUDA 8的,比如BVLC官方的Windows分支早期版本确实只支持到CUDA 8,所以切换到CUDA 8是解决这个错误的核心方向。
内容的提问来源于stack exchange,提问作者yihao.fu
相关产品推荐
相关产品推荐

