web-dev-qa-db-ja.com

VisualStudioなしでCUDAをコンパイルする-「パスにコンパイラcl.exeが見つかりません」

CUDAで小さなプロジェクトを始めたところです。

次のことを知っておく必要があります。MicrosoftVisualStudioを使用/購入せずにCUDAコードをコンパイルすることは可能ですか? Nvcc.exeを使用すると、「パスにコンパイラcl.exeが見つかりません」というエラーが表示されます。

NetBeans用のCUDA plugin をインストールしようとしましたが、機能しません。 (現在のバージョンのNetBeansを使用)

プラットフォーム:Windows 7

前もって感謝します。

10
Panos Kal.

以前のコメントに続いて、StudioExpressとVS2010をインストールしました。これは「cl.exeがパスにない」問題を解決しませんでした。

Windows SDKをインストールする前に、PATHにc:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\AMD64を含めることで、エラーCannot find compiler cl.exe in pathの問題を解決しました。

この 質問 にも貴重な情報が含まれています。
何らかの理由でVS2010Studio Expressは、の実行後もパスに適切な変数を設定できませんでしたvsvars32.bat

貴重なご協力ありがとうございました。

7
Panos Kal.

更新

コメントに記載されているように、Windows 7以降のSDKのバージョンには、ビルドツールが含まれていません。 Microsoftの最新のツールを使用する場合は、VisualStudioをインストールする必要があります。インストールすると、コマンドラインからツールを使用できます。

現時点では、無料バージョンは「コミュニティ」バージョンです。 Microsoft Visual Studio Community 2015

前に説明したように、古いSDKツールを使用して、Windows 7以前のアプリの開発を続けることができます(それらはWindowsの新しいバージョンで実行されます)。

元の回答

Visual Studioをどうしても避けたい場合は、 Windows SDK をダウンロードしてインストールしてください。これには、(多かれ少なかれ)VisualStudioと同じビルドツールが含まれています。

次に、Windows SDKコマンドプロンプト(Microsoft Windows SDKのスタートメニューにあります)を実行して、ツールを指すパスを設定すると、設定が完了します。

または、Visual C++ Expressを使用します。

9
arx

このオプションをnvccに追加します

nvcc x.cu <other options>  -ccbin "D:\Program Files\Microsoft Visual Studio 11.0\VC\bin"

私はVS2012を使用しており、cl.exeディレクトリはここにあります。

4
Prof. Hell

NVIDIA GPU ComputingToolkitがインストールされている場所を把握する必要があります。私のシステムでは、「C:\ Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin\nvcc.exe」にあります。

  1. Windowsの「環境変数の編集」。
  2. 新規をクリック...
  3. 変数名:NVCC変数値:C:\ Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin\nvcc.exe
  4. [OK]をクリックします。
2
nouveau

Linux用のwindowsサブシステムを使用し、windowsのubuntuターミナルを使用してgccおよびg ++とともにubuntuおよびnvccをインストールします(guiはwindows用のlinuxサブシステムでは機能しません)。次に、通常のLinuxターミナルで行われるように、bashとvim/nanoを使用して「cd」コマンドで.bashrcを目的の場所に構成します(bashがsystem32フォルダーで毎回開くので簡単です)。そして、nvcc overbashを使用して.cuファイルをコンパイルできます。 nvccはLinuxでgccとg ++をサポートしているため、問題は解決します。 Linuxに切り替えたり、くだらないVisual Studioを処理したりするために、平和を犠牲にする必要はありません。それは私のために働いた。

enter image description here

0
Rahul Gogoi