MacでNVCCを実行してCUDAプログラムをコンパイルしようとしています。
NVCCを実行しようとすると、次のエラーが表示されます。「nvcc fatal:ホストコンパイラ( 'Apple clang')のバージョン( '70300')はサポートされていません」。
XCodeバージョンを7.3に、Macを10.11.4に最近更新しました。
Clangバージョンを元に戻す方法はありますか?
Sudo xcode-select --switch /Library/Developer/CommandLineTools
clang --version
受け入れられた答えは、最新のコマンドラインツールをダウンロードしてインストールし、コンソールに入力して選択することを言っています
Sudo xcode-select --switch /Library/Developer/CommandLineTools
ツールの元のバージョンに戻す方法を尋ねられました。これは以下によって達成されます
Sudo xcode-select --switch /Applications/Xcode.app
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は動作するはずです
私は同じ問題に遭遇しました。
https://developer.Apple.com/downloads/ からダウンロードできる古いコマンドラインツールだと思います
この問題を解決する可能性があります。
更新:
以下のリンクからダウンロードしてインストールすると、clangバージョンはApple LLVMバージョン7.0.2 clang-700に正常に戻りました。ただし、OS Xバージョンに注意してください。
Homebrewのllvmバージョンを試してみると、うまくいきます。 brew install llvm37
次に、コンパイラをhomebrewのclangに設定します:/usr/local/bin/clang++-3.7またはwhich clang++-3.7
に応答するもの
そうすれば、OS X開発環境をデフォルトのままにすることができます。
私は「80100」を使用し、他のプログラムの一部でnvccを使用しました。
`
...
nvcc fatal : The version ('80100') of the Host compiler ('Apple clang') is not supported
...
`
私はグーグルでこれについての議論を見る( https://github.com/arrayfire/arrayfire/issues/1384 ) アレイ火災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)
...
`
残念ながら、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をインストールすることでした。
Xcodeの名前を変更するには、Macの/ ApplicationsフォルダーにXcode-7.appを指定します。次に、Xcode6.4を https://developer.Apple.com/download/more/ からダウンロードしてインストールします。
同じ問題がありました! 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)