从命令提示符编译 CUDA 时出错

问题描述 投票:0回答:8

我正在尝试通过命令提示符在 Windows 7 上编译 cuda 测试程序, 我是这个命令:

nvcc test.cu

但我得到的只是这个错误:

nvcc fatal : Cannot find compiler 'cl.exe' in PATH

什么可能导致此错误?

cuda nvidia
8个回答
60
投票

您需要将包含“cl.exe”文件的文件夹添加到路径环境变量中。例如:

C:\Program Files\Microsoft Visual Studio 10.0\VC\bin

编辑:好的,转到我的电脑->属性->高级系统设置->环境变量。在列表中查找“PATH”,然后添加上面的路径(或者 cl.exe 的位置)。


38
投票

对于新的 Visual Studio

cl.exe
存在于路径 =>
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.23.28105\bin\Hostx64\x64

x64 适用于 64 位

x86 适用于 32 位


25
投票

通过将此选项添加到 nvcc 来解决此问题

nvcc x.cu ...   -ccbin "D:\Program Files\Microsoft Visual Studio 11.0\VC\bin"

例如我的编译器是VS2012。 cl.exe 位于此目录中


5
投票

cl.exe
是微软的C/C++编译器。所以问题是你没有安装命令行可以找到它的地方。


1
投票

nvcc 只是程序的 CUDA 特定部分的前端。它必须调用完整的编译器来完成这项工作。在这种情况下,它找不到 Visual Studio 编译器“cl.exe”

检查路径、nvcc 文档等


1
投票

通过添加环境变量的路径来解决这个问题,根据您系统中安装的Visual Studio版本以及您使用的是32位还是64位系统,该路径可能略有不同

C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\bin\Hostx64\x64

0
投票

我发现这是一个老问题,但最近当我尝试构建 CUDA 项目时,我在 Visual Studio 2012 上遇到了此错误。显然,我已将 CUDA 项目更改为 2012 年 11 月包,将其更改回通常默认的 v110,修复了此错误。

在 Visual Studio 中,左键单击 CUDA 项目,->属性->配置属性->常规->平台工具集,然后选择:Visual Studio 2012 (v110)。

我可能可以让它与 2012 年 11 月的包一起使用,但 CUDA 代码不使用该包的任何附加功能,因此没有必要。 (该包包含 C++11 的可变参数模板。)


0
投票

截至 2024 年 4 月 6 日,64 位 Windows 11 Pro 版本 23H2 中 VC 2022、cl.exe 的位置为:

“C:\Program Files\Microsoft Visual Studio�2\Community\VC\Tools\MSVC\ 14.38.33130 in\Hostx64\x6

© www.soinside.com 2019 - 2024. All rights reserved.