VS下进行CUDA编译时error MSB3721相关的原因之一
报错:“1>D:\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations\CUDA 11.6.targets(790,9): error MSB3721: 命令“"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\bin\nvcc.exe" -gencode=arch=compute_61,code="sm_61,compute_61" --use-local-env -ccbin "D:\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64" -x cu -rdc=true 。。。。。。”
添加“mkl.h”的附加包含目录时注意有两个:
“C:\Program Files (x86)\Intel\oneAPI\mkl\2025.0\include”
“D:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2020.1.216\windows\mkl\include”
提到的两个路径确实都指向了 Intel MKL(Math Kernel Library)库,但它们属于不同的版本和安装方式。以下是关于这两个路径的详细解释:
1. C:\Program Files (x86)\Intel\oneAPI\mkl\2025.0\include
- Intel oneAPI:这是 Intel 的最新软件开发工具套件,旨在提供统一的编程模型来简化跨架构开发。它包含了多个优化库,包括最新的 MKL 版本。
- MKL 2025.0:这表明这是一个较新的 MKL 版本,可能包含了性能改进、新功能以及对现代硬件的支持。
2. D:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2020.1.216\windows\mkl\include
- Intel Parallel Studio XE 或 旧版 Intel Software Development Tools:这个路径指向的是 Intel 在 oneAPI 之前发布的软件包,如 Intel Parallel Studio XE。这些软件包也包含 MKL 库,但通常是较旧的版本。
- 2020.1.216:这是一个特定版本号,表示这是一个2020年的版本,可能缺少一些在 newer oneAPI 中引入的新特性。
选择哪个版本?
通常情况下,建议使用最新的库版本以获得最佳性能和支持。因此,如果你没有特别的需求或限制,应该优先考虑使用 Intel oneAPI 下的 MKL 版本(即 C:\Program Files (x86)\Intel\oneAPI\mkl\2025.0\include)。这个版本不仅更新,而且更有可能支持最新的硬件和技术。
添加附加包含目录
无论选择哪个版本,在 Visual Studio 的 C++ 项目属性中添加 MKL 的附加包含目录时,请确保遵循以下步骤:
打开项目属性:
- 右键点击解决方案资源管理器中的项目,选择“属性”。
配置所有平台和配置:
- 确保你选择了正确的平台(如 x64)和配置(如 Debug 或 Release),或者选择“全部配置”和“全部平台”。
添加包含目录:
- 导航到
Configuration Properties -> C/C++ -> General。 - 编辑
Additional Include Directories,添加所选 MKL 版本的包含路径,例如:C:\Program Files (x86)\Intel\oneAPI\mkl\2025.0\include
- 导航到
添加库目录(如果需要链接静态库或导入库):
- 导航到
Configuration Properties -> Linker -> General。 - 编辑
Additional Library Directories,添加相应的库路径,例如:C:\Program Files (x86)\Intel\oneAPI\mkl\2025.0\lib\intel64_win
- 导航到
指定链接的库文件:
- 导航到
Configuration Properties -> Linker -> Input。 - 编辑
Additional Dependencies,添加你需要链接的 MKL 库文件,例如:mkl_intel_lp64.lib
mkl_sequential.lib
mkl_core.lib
- 导航到
总结
确保你使用的是最新版本的 MKL 库(如来自 Intel oneAPI 的版本),并且正确配置了项目属性中的包含目录和库目录。这样可以确保你的项目能够充分利用 MKL 提供的优化功能,并且避免潜在的兼容性问题。如果你有特殊需求或项目依赖于旧版本的 MKL,则可以选择旧版本的路径。
VS下进行CUDA编译时error MSB3721相关的原因之一的更多相关文章
- cocos2d-html5的jsb模式下如何在编译时自动将js编译为jsc
cocos2d-html5是一个用JS来开发游戏的框架,通过javascript Binding的方式可以将游戏编译到手机上.这对前端开发人员来说非常方便,开发效率也比使用c++开发要快的多. jsb ...
- Ubuntu下math库函数编译时未定义问题的解决
自己在Ubuntu下练习C程序时,用到了库函数math.h,虽然在源程序中已添加头文件“math.h”,但仍提示所用函数未定义,原本以为是程序出错了,找了好久,这是怎么回事呢? 后来上网查了下,发现是 ...
- ubuntu下使用g++编译时默认支持C++11 配置方法
1.只需要在源文件程序中加上如下一行代码: #pragma GCC diagnostic error "-std=c++11" 此时源文件代码如下: #pragma GCC dia ...
- nodejs 前端项目编译时内存溢出问题的原因及解决方案
现象描述 昨天用webpack打包Vue的项目时,node内存溢出而停止build项目,即是项目构建过程中频繁报内存溢出:FATAL ERROR: CALL_AND_RETRY_LAST Alloca ...
- 转-java编译时error: illegal character '\ufeff' 的解决办法-https://blog.csdn.net/t518vs20s/article/details/80833061
原文链接:https://blog.csdn.net/shixing_11/article/details/6976900 最近开发人员通过SVN提交了xxx.java文件,因发布时该包有问题需要回退 ...
- linux下C/C++编译时系统搜索 include 和 链接库 文件路径的指定
C/C++程序在linux下被编译和连接时,GCC/G++会查找系统默认的include和link的路径,以及自己在编译命令中指定的路径.自己指定的路径就不说了,这里说明一下系统自动搜索的路径. ...
- IDEA14下多jdk编译时,enum不支持;多个project共用在一个workplace下每个module时引用外部包
idea多个工程如何在一个项目中管理: 把多个多个项目放在一个叫work目录下,那么打开IntelliJ IDEA编译器,点击菜单 File->Open...,选择刚刚的work目录,即可. 在 ...
- linux下编译时的默认库和头文件搜索路径
链接库路径 默认的链接库路径,定义在搜索/etc/ld.so.conf下的一些路径,其包含了一些重要的系统位置:LIBRARY_PATH, 但如果定义了LD_LIBRARY_PATH, 动态库的搜索路 ...
- c#中运行时编译时 多态
c#中运行时编译时 多态 public class aa { } public class bb:aa { } public class cc { public static void Main( ...
- gcc 编译时 库链接
gcc -l参数和-L参数 -l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把 ...
随机推荐
- jmespath 使用及案例
什么是jmespath jmespath 是python里面的一个库 主要在httprunner框架里使用 2.使用语法 列表: with_jmespath(jmes_path,var_name) m ...
- Scanner的进阶使用——数字的输入
1.用Scanner输入数字(整数和小数) 1.定义一个整数变量 2.建立扫描器 3.使用if 4.建立电脑接收数据 5.设置else(那么)语法 6.关闭Scanner
- sql server2008出现set 选项的设置不正确:"ARITHABORT”
( SELECT STUFF(( SELECT '','' + CODE FROM INVNEWSAL11 WHERE (MASTERI=BILRCV.SRCERI) OR (LINKERI IN ( ...
- nodejs中使用websockets
websockets介绍 websockets这个新协议为客户端提供了一个更快.更有效的通信线路.像HTTP一样,websockets运行在TCP连接之上,但是它们更快,因为我们不必每次都打开一个新的 ...
- CH9121default与classical设置方法
SYN发送间隔调整方法: 网口连接设备后双击设备列表中要配置的设备在扩展参数中单击获取扩展参数,在超时处理模式选项选择Classical然后执行设置扩展参数,最后点击复位模块后生效(仅TCP CLIE ...
- 探秘Transformer系列之(24)--- KV Cache优化
探秘Transformer系列之(24)--- KV Cache优化 目录 探秘Transformer系列之(24)--- KV Cache优化 0x00 前言 0x01 背景知识 1.1 度量指标 ...
- ESP32+Arduino入门教程(二):连接OLED屏
前言 文中视频效果可在此次观看:ESP32+Arduino入门教程(二):连接OLED屏 接线 现在先来看看接线. 我的是0.91寸的4针OLED屏. OLED引脚 ESP32-S3引脚 GND GN ...
- v-bind,v-if,v-for,v-on,v-model基本用法
总结: 1.v-bind绑定数据:标签属性v-bind:title='xxx',简写:title='xxx', 标签内容{{xxx}} <span :title='message'>{{m ...
- java基础之关键字(this、static、super、final、 权限修饰符)
一.this的含义 this:代表所在类的当前对象的引用(地址值),即对象自己的引用. 记住 :方法被哪个对象调用,方法中的this就代表那个对象.即谁在调用,this就代表谁 this的三种运用: ...
- Nginx+Windows搭建域名访问环境, 由nginx --> 网关 ---> 服务
1).修改windows hosts文件改变本地域名映射,将gulimall.com映射到虚拟机ip 2).修改nginx的根配置文件nginx.conf,将upstream映射到我们的网关服务 up ...