运行make命令返回退出码1,compute_61.cpp1.ii文件编译检测到2个错误
CUDA编译退出码1问题排查方案
1 提取原始报错信息
你看到的.compute_61.cpp1.ii是CUDA预编译生成的中间文件,无法直接定位错误,首先要拿到完整的编译日志:
- 执行带详细输出的make命令,把日志保存到本地文件:
make V=1 2>&1 | tee build.log - 打开build.log文件,搜索
error:关键词,就能找到2个错误的具体类型、关联的原始代码行号。
2 常见错误场景排查
2.1 算力配置不匹配
文件名中的compute_61对应NVIDIA帕斯卡架构(GTX 10系列、P100等),如果报错和算力相关:
- 执行命令查询你的显卡实际支持的算力:
nvidia-smi --query-gpu=compute_cap --format=csv - 检查Makefile中的CUDA架构配置,确认
-gencode参数包含你显卡对应的算力值,示例正确配置如下:NVCC_FLAGS += -gencode arch=compute_61,code=sm_61
2.2 代码或依赖缺失问题
如果报错指向具体代码逻辑:
- 找到原始的
kernels.cu源文件,核对对应行是否存在CUDA核函数语法错误、主机/设备函数调用不兼容问题 - 确认你安装的CUDA Toolkit版本符合项目要求,不同CUDA版本对C++语法支持、内置API存在差异
- 检查Makefile中
INCLUDE_PATH、LIBRARY_PATH是否正确添加了CUDA头文件、依赖库的路径。
3 验证修复
修改后先执行make clean清空所有历史编译缓存,再重新运行make,确认报错是否消失。
内容的提问来源于stack exchange,提问作者Muhammad Kashif
相关产品推荐
相关产品推荐

