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 的附加包含目录时,请确保遵循以下步骤:

  1. 打开项目属性

    • 右键点击解决方案资源管理器中的项目,选择“属性”。
  2. 配置所有平台和配置

    • 确保你选择了正确的平台(如 x64)和配置(如 Debug 或 Release),或者选择“全部配置”和“全部平台”。
  3. 添加包含目录

    • 导航到 Configuration Properties -> C/C++ -> General
    • 编辑 Additional Include Directories,添加所选 MKL 版本的包含路径,例如:
      C:\Program Files (x86)\Intel\oneAPI\mkl\2025.0\include
      
  4. 添加库目录(如果需要链接静态库或导入库)

    • 导航到 Configuration Properties -> Linker -> General
    • 编辑 Additional Library Directories,添加相应的库路径,例如:
      C:\Program Files (x86)\Intel\oneAPI\mkl\2025.0\lib\intel64_win
      
  5. 指定链接的库文件

    • 导航到 Configuration Properties -> Linker -> Input
    • 编辑 Additional Dependencies,添加你需要链接的 MKL 库文件,例如:
      mkl_intel_lp64.lib
      mkl_sequential.lib
      mkl_core.lib
      

总结

确保你使用的是最新版本的 MKL 库(如来自 Intel oneAPI 的版本),并且正确配置了项目属性中的包含目录和库目录。这样可以确保你的项目能够充分利用 MKL 提供的优化功能,并且避免潜在的兼容性问题。如果你有特殊需求或项目依赖于旧版本的 MKL,则可以选择旧版本的路径。

posted @   Carlos11  阅读(175)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示