恢复NVCC的Apple Clang版本

时间:2016-03-27 18:23:05

标签: ios xcode macos cuda clang

我正在尝试运行NVCC在我的Mac上编译CUDA程序。

当我尝试运行NVCC时,我收到以下错误:“nvcc致命:主机编译器('Apple clang')的版本('70300')不受支持”。

我最近将我的XCode版本更新为7.3,将Mac更新为10.11.4。

有没有办法还原我的Clang版本?

9 个答案:

答案 0 :(得分:42)

  1. 转到https://developer.apple.com/downloads/,登录然后下载http://adcdownload.apple.com/Developer_Tools/Command_Line_Tools_OS_X_10.11_for_Xcode_7.2/Command_Line_Tools_OS_X_10.11_for_Xcode_7.2.dmg,并按照fabregaszy的建议进行安装。
  2. 运行以下命令切换到旧版本: sudo xcode-select --switch /Library/Developer/CommandLineTools
  3. 运行以下命令快速检查clang版本: clang --version

答案 1 :(得分:7)

我在10.11升级到XCode 7.3后遇到了同样的问题。重新安装以前的(7.2)命令行工具并没有降级默认的clang编译器。为了解决这个问题,我使用以前的XCode.app包将XcodeDefault.xctoolchain目录重命名并复制到当前/Applications/Xcode.app中的Toolchains director中。你必须右键单击Xco​​de.app到"显示包内容"然后浏览到工具链目录。

enter image description here

然后(重新)启动Xcode,点击命令,获取首选项,然后转到位置。您将看到命令行工具的下拉列表。将其更改为您复制的工具链版本。

enter image description here

您可以在终端中查看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版本。

http://adcdownload.apple.com/Developer_Tools/Command_Line_Tools_OS_X_10.11_for_Xcode_7.2/Command_Line_Tools_OS_X_10.11_for_Xcode_7.2.dmg

答案 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)

80100可以与某些nvcc程序一起使用

我使用&#34; 80100&#34;和nvcc适用于我的其他一些程序。

...但不是样本

`

...
nvcc fatal   : The version ('80100') of the host compiler ('Apple clang') is not supported
...

`

安装CLT 8.2(来自Apple的命令行工具)关于&#34;命令行工具实例&#34;

的消息是好的

我谷歌并看到关于此(https://github.com/arrayfire/arrayfire/issues/1384about 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)