错误 MSB3721 命令 已退出,返回代码为 1 CUDA 11.6.targets ***

2023-12-16 04:20

本文主要是介绍错误 MSB3721 命令 已退出,返回代码为 1 CUDA 11.6.targets ***,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

总是遇到”错误 MSB3721 命令 已退出“这个错误,但是每次的原因都不一样,记录一下踩过的坑吧

error1:2023.12.15

错误背景:已经写好的C++工程在其他两台windows服务器上都编译通过了,但是给另外一位同事电脑配置后在visual stdio中生成解决方案一直报这个错,基本是新电脑,配置是:显卡(4090)、CUDA(11.7)。
完整报错:

严重性  代码  说明  项目  文件  行  禁止显示状态
错误  MSB3721  命令“"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\bin\nvcc.exe"  
--use-local-env -ccbin "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64" 
-x cu -rdc=true  
-ID:\include 
-ID:\include\Common 
-ID:\include\tinyxml2 
-I"C:\Program Files\MATLAB\R2022a\extern\include" 
-I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\include" 
-I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.7\include"  -G   
--keep-dir x64\Debug  -maxrregcount=0  --machine 64 --compile -cudart static -std=c++17 -arch=native -Xcompiler="/EHsc -Zi -Ob0" -g  -D_WINDOWS -D"CMAKE_INTDIR=\"Debug\"" 
-Dfilter_EXPORTS 
-D_WINDLL 
-D_MBCS 
-DWIN32 
-D_WINDOWS 
-D"CMAKE_INTDIR=\"Debug\"" 
-Dfilter_EXPORTS -Xcompiler "/EHsc /W3 /nologo /Od /Fdfilter.dir\Debug\vc142.pdb /FS /Zi /RTC1 /MDd /GR" -o filter.dir\Debug\/src/filter.cu.obj "D:\src\filter.cu"”已退出,返回代码为 1。  
filter  C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations\CUDA 11.7.targets  790

这个报错基本看不出什么问题,使用命令行生成解决方案可以得到更细节的报错信息:

make --build .

然后在命令行中上面这个报错的前一行得到新的报错信息:

nvcc fatal : Unsupported gpu architecture 'compute_89'

发现是算力不匹配问题,首先查看当前CUDA版本支持的最高算例,使用命令:

nvcc --list-gpu-arch
E:\***>nvcc --list-gpu-arch
compute_35
compute_37
compute_50
compute_52
compute_53
compute_60
compute_61
compute_62
compute_70
compute_72
compute_75
compute_80
compute_86
compute_87

确实,CUDA11.7不支持compute_89,查看能够支持89的CUDA版本升级安装即可,这里我的4090显卡对应>=CUDA11.8
查询参照网站:进去直接搜索自己的显卡号找快一点
在这里插入图片描述
升级CUDA后报错消失。
tip:
Visual Stdio编译错误不清晰时,考虑用命令行编译。
参考文章:
https://zhuanlan.zhihu.com/p/646962555
https://blog.csdn.net/m0_37605642/article/details/99100924
https://blog.csdn.net/Redamancy06/article/details/125809903
重装cuda选择组件时,若已经取消选择visual stdio intergration,但安装时仍然会安装visual stdio intergration edition,并报错安装失败,则在选择安装选项时,同时取消掉Nsight VSE即可。

这篇关于错误 MSB3721 命令 已退出,返回代码为 1 CUDA 11.6.targets ***的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/499085

相关文章

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

PowerShell中15个提升运维效率关键命令实战指南

《PowerShell中15个提升运维效率关键命令实战指南》作为网络安全专业人员的必备技能,PowerShell在系统管理、日志分析、威胁检测和自动化响应方面展现出强大能力,下面我们就来看看15个提升... 目录一、PowerShell在网络安全中的战略价值二、网络安全关键场景命令实战1. 系统安全基线核查

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

postgresql数据库基本操作及命令详解

《postgresql数据库基本操作及命令详解》本文介绍了PostgreSQL数据库的基础操作,包括连接、创建、查看数据库,表的增删改查、索引管理、备份恢复及退出命令,适用于数据库管理和开发实践,感兴... 目录1. 连接 PostgreSQL 数据库2. 创建数据库3. 查看当前数据库4. 查看所有数据库

Java实现自定义table宽高的示例代码

《Java实现自定义table宽高的示例代码》在桌面应用、管理系统乃至报表工具中,表格(JTable)作为最常用的数据展示组件,不仅承载对数据的增删改查,还需要配合布局与视觉需求,而JavaSwing... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)