我正在尝试在我的Mac上运行NVCC以编译CUDA程序。
当我尝试运行NVCC时,我收到以下错误消息:"nvcc fatal : The version ('70300') of the host compiler ('Apple clang') is not supported"。
最近我将XCode版本更新到了7.3,并将我的Mac更新到了10.11.4。
有没有办法恢复我的Clang版本呢?
我正在尝试在我的Mac上运行NVCC以编译CUDA程序。
当我尝试运行NVCC时,我收到以下错误消息:"nvcc fatal : The version ('70300') of the host compiler ('Apple clang') is not supported"。
最近我将XCode版本更新到了7.3,并将我的Mac更新到了10.11.4。
有没有办法恢复我的Clang版本呢?
sudo xcode-select --switch /Library/Developer/CommandLineTools
clang --version
cutorch
安装仍然失败了。我错过的是我仍然有缓存版本挂在那里。在我的情况下,我没有运行make clean
/clean.sh
。
感谢github上的subzerofun -
https://github.com/torch/cutorch/issues/522#issuecomment-252517776 - Ivarrevert
操作只是针对这种特定情况,它并没有切换到特定版本。你能提供一个更通用的解决方案吗? - Chrissudo xcode-select --switch /Library/Developer/CommandLineTools
有人问如何恢复工具的原始版本。这可以通过以下方式实现:
sudo xcode-select --switch /Applications/Xcode.app
然后重新启动Xcode,按下Command-,打开偏好设置,然后进入位置。您将看到“命令行工具”的下拉菜单。将其更改为您复制过来的工具链版本。
你可以在终端中检查clang的默认版本:clang -v OR llvm-gcc -v
现在nvcc应该可以工作了
brew install llvm37
然后将编译器设置为homebrew的clang:
/usr/local/bin/clang++-3.7 或者是响应
which clang++-3.7
这样你就可以保留OS X开发环境的默认设置。/usr/local/bin
放在PATH的最前面,并设置ln -s clang++-3.7 clang
,但是我仍然得到相同的错误。 - Jonathan Muganln -s clang++-3.7 clang
只是将 "clang++-3.7" 指向 "clang",对你没有任何好处。链接是从源到目标,而不是反过来。此外,您的链接可以是相对或绝对的 - 我更喜欢绝对的,但在这种情况下不会使用符号链接。 - Dave Braford-Grimes不幸的是,从X-code版本7.2安装命令行工具目前无法解决此问题。
尝试编译会导致:
nvcc fatal : GNU C/C++编译器在Mac OS X上不再支持作为主机编译器。
对我有用的方法是卸载Xcode 7.3并从Apple开发者网站安装Xcode 6.2。
我使用"80100"和nvcc为我的其他一些程序工作。
`
...
nvcc fatal : The version ('80100') of the host compiler ('Apple clang') is not supported
...
`
我搜索并看到了关于此问题的讨论(https://github.com/arrayfire/arrayfire/issues/1384)关于array fire nvcc问题的讨论,并且由于提示切换到CLT 8.2,最后一个版本而不是当前版本。这有点可以接受,但会出现关于“命令行工具实例”的警告消息。
需要使用“sudo make”编译示例代码:
` ... $ sudo make Password:
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
expr: syntax error
/Developer/NVIDIA/CUDA-8.0/bin/nvcc -ccbin g++ -I../../common/inc -m64 -Xcompiler -arch -Xcompiler x86_64 -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_60,code=compute_60 -o deviceQuery.o -c deviceQuery.cpp
nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
/Developer/NVIDIA/CUDA-8.0/bin/nvcc -ccbin g++ -m64 -Xcompiler -arch -Xcompiler x86_64 -Xlinker -rpath -Xlinker /Developer/NVIDIA/CUDA-8.0/lib -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30 -gencode arch=compute_35,code=sm_35 -gencode arch=compute_37,code=sm_37 -gencode arch=compute_50,code=sm_50 -gencode arch=compute_52,code=sm_52 -gencode arch=compute_60,code=sm_60 -gencode arch=compute_60,code=compute_60 -o deviceQuery deviceQuery.o
nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
mkdir -p ../../bin/x86_64/darwin/release
cp deviceQuery ../../bin/x86_64/darwin/release
$ ./deviceQuery
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
...
`