我正在尝试通过命令提示符在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在这个目录中。
\VC\bin\
文件夹添加到PATH环境变量对我没有起作用(Win7)。然而,您的解决方案完美地解决了我的问题!我正在尝试为MATLAB编译一些代码。谢谢! - Dev-iLC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
- Garrettcl.exe
是微软的 C/C++ 编译器。所以问题在于你没有将其安装到命令行可以找到的位置。
nvcc只是该程序CUDA特定部分的前端。它必须调用完整的编译器来完成工作。在这种情况下,它找不到Visual Studio编译器'cl.exe'
检查路径,nvcc文档等。
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\bin\Hostx64\x64
cl.exe
,则不会出现错误。 - MindStudio我看到这是一个旧问题,但最近在我的Visual Studio 2012中构建CUDA项目时遇到了这个错误。显然,我已经将我的CUDA项目更改为Nov 2012包,将其更改回通常默认的v110即可解决此错误。
在Visual Studio中,左键单击CUDA项目,->属性->配置属性->常规->平台工具集,并选择:Visual Studio 2012(v110)。
我可能可以使用Nov 2012包使其正常工作,但是CUDA代码不使用该包的任何其他功能,因此没有必要。(该包包含C++11的可变参数模板。)