我正在尝试运行NVCC在我的Mac上编译CUDA程序。
当我尝试运行NVCC时,我收到以下错误:“nvcc致命:主机编译器('Apple clang')的版本('70300')不受支持”。
我最近将我的XCode版本更新为7.3,将Mac更新为10.11.4。
有没有办法还原我的Clang版本?
答案 0 :(得分:42)
sudo xcode-select --switch /Library/Developer/CommandLineTools
clang --version
答案 1 :(得分:7)
我在10.11升级到XCode 7.3后遇到了同样的问题。重新安装以前的(7.2)命令行工具并没有降级默认的clang编译器。为了解决这个问题,我使用以前的XCode.app包将XcodeDefault.xctoolchain目录重命名并复制到当前/Applications/Xcode.app中的Toolchains director中。你必须右键单击Xcode.app到"显示包内容"然后浏览到工具链目录。
然后(重新)启动Xcode,点击命令,获取首选项,然后转到位置。您将看到命令行工具的下拉列表。将其更改为您复制的工具链版本。
您可以在终端中查看clang的默认版本:
clang -v OR llvm-gcc -v
现在nvcc应该可以工作
答案 2 :(得分:7)
接受的答案是下载最新的命令行工具并安装它们,然后通过在控制台中输入来选择它们
sudo xcode-select --switch /Library/Developer/CommandLineTools
有人询问如何恢复原始版本的工具。这是通过
实现的sudo xcode-select --switch /Applications/Xcode.app
答案 3 :(得分:4)
我遇到了同样的问题。
我认为旧的命令行工具可以从中下载 https://developer.apple.com/downloads/
可以解决这个问题。
<强>更新强>
我从下面的链接下载并安装后,clang版本已成功恢复为Apple LLVM版本7.0.2 clang-700。但请密切关注您的OS X版本。
答案 4 :(得分:1)
我会尝试自制的llvm版本,它对我有用。
brew install llvm37
然后,将您的编译器设置为自制语言的clang:
/usr/local/bin/clang++-3.7或其他任何响应
which clang++-3.7
通过这种方式,您可以保持OS X开发环境的默认设置。
答案 5 :(得分:1)
不幸的是,从X-code版本7.2安装命令行工具。目前还没有解决这个问题。
尝试编译结果:
nvcc fatal : GNU C/C++ compiler is no longer supported as a host compiler on Mac OS X.
对我来说,诀窍是卸载Xcode 7.3并从Apple开发者网站安装Xcode 6.2。
答案 6 :(得分:1)
将Mac中的Xcode重命名为/ Applications文件夹中的Xcode-7.app。 然后从https://developer.apple.com/download/more/下载Xcode6.4并安装它。
答案 7 :(得分:1)
我使用&#34; 80100&#34;和nvcc适用于我的其他一些程序。
`
...
nvcc fatal : The version ('80100') of the host compiler ('Apple clang') is not supported
...
`
我谷歌并看到关于此(https://github.com/arrayfire/arrayfire/issues/1384)about array fire nvcc issue 的讨论,并且由于提示切换到CLT 8.2,最后一个版本不是当前版本。关于&#34;命令行工具实例&#34;
的警告消息是好的需要使用&#34; sudo make&#34;编译示例代码:
` ... $ sudo make 密码:
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)
...
`
答案 8 :(得分:0)
我遇到了同样的问题! 查看我的Time Machine备份并在我的/ Application文件夹中复制Xcode.app(7.2.1)。您也可以从Apple Developer Page下载它并将其移动到您的/ Application文件夹中。 完成后,您可以将Xcode首选项中的Xcode命令行版本更改为7.2.1 然后nvcc将再次工作(即使使用pycuda-2016.1)。
clang --version
给了我:
Apple LLVM version 7.0.2 (clang-700.1.81)