我正在尝试通过命令提示符在 Windows 7 上编译 cuda 测试程序, 我是这个命令:
nvcc test.cu
但我得到的只是这个错误:
nvcc fatal : Cannot find compiler 'cl.exe' in PATH
什么可能导致此错误?
您需要将包含“cl.exe”文件的文件夹添加到路径环境变量中。例如:
C:\Program Files\Microsoft Visual Studio 10.0\VC\bin
编辑:好的,转到我的电脑->属性->高级系统设置->环境变量。在列表中查找“PATH”,然后添加上面的路径(或者 cl.exe 的位置)。
对于新的 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 位
通过将此选项添加到 nvcc 来解决此问题
nvcc x.cu ... -ccbin "D:\Program Files\Microsoft Visual Studio 11.0\VC\bin"
例如我的编译器是VS2012。 cl.exe 位于此目录中
cl.exe
是微软的C/C++编译器。所以问题是你没有安装命令行可以找到它的地方。
nvcc 只是程序的 CUDA 特定部分的前端。它必须调用完整的编译器来完成这项工作。在这种情况下,它找不到 Visual Studio 编译器“cl.exe”
检查路径、nvcc 文档等
通过添加环境变量的路径来解决这个问题,根据您系统中安装的Visual Studio版本以及您使用的是32位还是64位系统,该路径可能略有不同
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\bin\Hostx64\x64
我发现这是一个老问题,但最近当我尝试构建 CUDA 项目时,我在 Visual Studio 2012 上遇到了此错误。显然,我已将 CUDA 项目更改为 2012 年 11 月包,将其更改回通常默认的 v110,修复了此错误。
在 Visual Studio 中,左键单击 CUDA 项目,->属性->配置属性->常规->平台工具集,然后选择:Visual Studio 2012 (v110)。
我可能可以让它与 2012 年 11 月的包一起使用,但 CUDA 代码不使用该包的任何附加功能,因此没有必要。 (该包包含 C++11 的可变参数模板。)
截至 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