【问题标题】:Revert Apple Clang Version For NVCC恢复 NVCC 的 Apple Clang 版本
【发布时间】:2016-07-15 00:57:28
【问题描述】:

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

当我尝试运行 NVCC 时,我收到以下错误:“nvcc fatal : The version ('70300') of the host compiler ('Apple clang') is not supported”。

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

有没有办法恢复我的 Clang 版本?

【问题讨论】:

标签: ios xcode macos cuda clang


【解决方案1】:

我遇到了同样的问题。

我认为旧的命令行工具可以从 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

【讨论】:

  • 当我点击这个页面时,它说找不到。有更新的吗?
  • @JudeMichaelMurphy 看来你需要通过developer.apple.com/downloads使用苹果开发者账号登录
【解决方案2】:

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

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

您可以在终端中查看默认的 clang 版本:

clang -v OR llvm-gcc -v

现在 nvcc 应该可以工作了

【讨论】:

  • 你能告诉你以前的xCode.app是从哪里得到的吗?当我从 Apple 网站下载它时,它是一个安装包,我不希望它安装在我的系统上。
  • 登录你的苹果开发者账户,然后点击这里:developer.apple.com/downloads这个站点有旧的xcode dmgs。至少 6.4 包含 Xcode.app 文件。
  • 是的,谢谢,已经想通了。我试图欺骗并仅下载命令行工具,但它们是可安装包,因此我无法从中提取clang。
【解决方案3】:

我遇到了同样的问题! 查看我的 Time Machine Backups 并将 Xcode.app (7.2.1) 复制到我的 /Application 文件夹中。您也可以从 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)

【讨论】:

    【解决方案4】:

    我会尝试自制版本的 llvm,它对我有用。 brew install llvm37

    然后,将编译器设置为 homebrew 的 clang: /usr/local/bin/clang++-3.7 或任何响应 which clang++-3.7

    这样您就可以保留 OS X 开发环境的默认设置。

    【讨论】:

    • 你如何将你的编译器设置为自制的clang?我尝试将 /usr/local/bin 放在我的 PATH 的首位并设置 ln -s clang++-3.7 clang 但我得到了同样的错误。
    • 我不会使用 brew 进行硬链接,至少可以说很麻烦。更改您的“configure”或“cmake”变量以使用 Cellar 中的编译器。我的 clang 路径是 /usr/local/Cellar/llvm37/3.7.1/bin/clang++-3.7。 cmake 的常用变量是 CMAKE_CXX_COMPILER 和 CUDA_HOST_COMPILER。
    • ln -s clang++-3.7 clang 只是将“clang++-3.7”指向“clang” - 你没有好处。链接是 FROM -> TO,反之亦然。此外,您的链接可以是相对的或绝对的 - 我更喜欢绝对的,但在这种情况下不会使用符号链接。
    • 这是这里唯一明智的答案,它应该有更多的支持
    【解决方案5】:
    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) 之前已经升级到 8.0,则可以在此处运行第二个命令。这将我的 clang 带到了 7.3,现在一切正常。
    • 这“有效”,但我的安装(cutorch)仍然失败。我缺少的东西是我缓存的版本仍然存在。就我而言,我没有运行make clean/clean.sh。感谢 github 上的 subzerofun - github.com/torch/cutorch/issues/522#issuecomment-252517776
    • 这适用于我的 mac 10.12.5 (sierra)。 Link To CMT 7.3谢谢
    • 你如何切换回来:)
    • 这个reverts,不会切换到具体的版本,只和这个具体的情况有关。你能提供一个更通用的解决方案吗?
    【解决方案6】:

    不幸的是,从 X-code 7.2 版安装命令行工具。目前没有解决这个问题。

    尝试编译结果:

    nvcc fatal : GNU C/C++ compiler is no longer supported as a host compiler on Mac OS X.

    对我有用的是从 Apple 开发者网站卸载 Xcode 7.3 并安装 Xcode 6.2。

    【讨论】:

    • 这是你的答案还是另一个问题?
    • 用我找到的解决方案替换了问题。谢谢。
    【解决方案7】:

    重命名 Xcode 在您的 Mac 中作为 Xcode-7.app 存在于 /Applications 文件夹中。 然后从https://developer.apple.com/download/more/下载Xcode6.4并安装。

    【讨论】:

    • 奇怪的是这对我有用。我的计算机上有多个版本的 xcode,但我需要为 xcode-select 命令重命名原始版本以实际选择较旧的编译器。
    【解决方案8】:

    80100 可以与一些 nvcc 程序配合使用

    我在其他一些程序中使用了“80100”和 nvcc。

    ...但不是样本

    `

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

    `

    安装 CLT 8.2(来自 Apple 的命令行工具)与“命令行工具实例”有关的消息是可以的

    我在谷歌上看到了一个关于这个的讨论 (https://github.com/arrayfire/arrayfire/issues/1384) about array fire nvcc issue 并且感谢切换到 CLT 8.2 的提示,最后一个版本不是当前版本。关于“命令行工具实例”的警告消息是可以的

    需要使用“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)
    ...
    

    `

    【讨论】:

    • nvcc fatal:不支持主机编译器('Apple clang')的版本('80100')。编译 3rd 方库(PCL)时,我在 OS X 10.12.4、Xcode 8.3 上也遇到此错误是否有任何人知道的解决方法?我已经尝试过不同版本的 CLT。
    【解决方案9】:

    接受的答案是下载最新的命令行工具并安装它们,然后通过在控制台中输入来选择它们

    sudo xcode-select --switch /Library/Developer/CommandLineTools
    

    有人询问如何恢复到工具的原始版本。这是通过

    sudo xcode-select --switch /Applications/Xcode.app
    

    【讨论】:

      猜你喜欢
      • 2016-02-09
      • 2018-09-11
      • 1970-01-01
      • 2016-07-12
      • 2016-03-23
      • 2022-07-07
      • 2014-03-31
      • 2020-06-12
      • 1970-01-01
      相关资源
      最近更新 更多