我正在尝试使用以下语法从命令行编译 CUDA 代码:
nvcc -c MyFile.cu -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin"
我安装了 CUDA Toolkit 5.5 版以及 Visual C++ 2010 Express。我没有完整版本的 Visual Studio。
我收到以下错误消息:
nvcc : fatal error : nvcc cannot find a supported version of Microsoft Visual Studio. Only the versions 2008, 2010, and 2012 are supported
我已经看到人们使用 CUDA Toolkit 5.0 进行 VC2010 Express 编译的先例,例如在此线程中
https://devtalk.nvidia.com/default/topic/535527/?comment=3762165
因此,我无法理解仅仅因为它是 CUDA 5.5 而不是 5.0,会有什么关键区别。是 VC Express 还是 VC Professional 会有什么区别吗?为什么这对于编译来说很重要? Pro 和 Express 真的使用非常不同的编译器吗?
最佳答案
我还不能发表评论,而且我不知道这是否是正确的答案,因为我没有 2010 Express。因此,为了提供帮助,我将尝试给出答案。
我可以为您提供我的编译行的开头,它与您的略有不同:
set CUDAFE_FLAGS=--sdk_dir "C:\Program Files (x86)\Windows Kits\8.0\"
"C:\_work\API\CUDA\bin\nvcc.exe" --use-local-env --cl-version 2012 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_amd64" --keep-dir x64\Prod -maxrregcount=0 --machine 64
从此,我希望您将路径更改为您的路径,并将 cl 版本也更改为
"C:\_work\API\CUDA\bin\nvcc.exe" --use-local-env --cl-version 2010 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cl.exe" --machine 32
请注意,我也尝试将其更改为 32 位。我认为这就是您正在运行的内容。
干杯
关于c++ - 从命令行编译 CUDA 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21103243/