2012-02-24 19 views
1

をCUDAのコンパイル中:リンクエラー私は、このコマンドを使用してコマンドプロンプト経由でWindows 7のx64上のCUDAのテストプログラムをコンパイルしようとしているコマンドプロンプトから

nvcc cuda.cu 

私は次のように出力し、このエラーメッセージが表示されます。

cuda.cu 
tmpxft_00000d14_00000000-3_cuda.cudafe1.gpu 
tmpxft_00000d14_00000000-8_cuda.cudafe2.gpu 
cuda.cu 
tmpxft_00000d14_00000000-3_cuda.cudafe1.cpp 
tmpxft_00000d14_00000000-14_cuda.ii 
LINK : fatal error LNK1104: cannot open file 'kernel32.lib' 

私はCでkernel.libファイルを持っている:\プログラムファイル(x86の)\マイクロソフトのSDK \ Windowsの\ v7.0A \ libがとCUDA LIB環境変数が機能しないと付け加えました。

このエラーの原因は何か、それを修正するにはどうすればよいですか?

+0

引数として "-machine 32"を追加してみてください。 – nouveau

+0

試してみてください.Jayそれは と言っています。nvcc fatal: 'achine':数字が必要です。 それから、 " - マシン32"は引き続き返されます。 LINK:致命的なエラーLNK1104: 'kernel32.lib'ファイルを開くことができません。 – TheGame

+0

64ビットOSを使用しているので、-m64はどうですか? – harrism

答えて

2

環境変数にMS libの場所を指定しないでください。あなたは本当に

nvcc <file> -L"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib" 

のように「-L」コマンドラインオプションを使用する必要がある、あなたのホストコードをビルドするためにホストコンパイラが必要ですので、あなたはおそらく、Visual Studioがインストールが必要です。

+0

Ohk。 Visual Studio Express Editionをインストールしました。コマンドラインから実行している間、多くのエラーが発生します。ここで LIBCMT.LIB(commit.obj)..それらのいくつかは以下のとおりです。エラーLNK2001:未解決の外部シンボル__imp_GetLastError LIBCMT.LIB(lseeki64.obj):エラーLNK2019:未解決の外部シンボル__imp_GetLastError機能_lseeki64_nolock LIBCMT.LIBで参照します(close.obj):エラーLNK2001:未解決の外部シンボル__imp_GetLastError LIBCMT.LIB(osfinfo.obj):エラーLNK2001:未解決の外部シンボル__imp_GetLastError A.EXE:致命的なエラーLNK1120:未解決の外部76 – TheGame

+0

私はVisual Studioにインストールさ10.0 ExpressとWindows SDK 7.1と私はあなたが得るエラーを取得しませんでした。しかし、私は64ビット(64ビットCUDA Toolkitのデフォルト)をコンパイルすることができませんでした。私は '--machine 32'を追加してエラーなしでコンパイルしました。そのオプションなしでコンパイルするには、Visual Studio 10.0 Professionalをインストールする必要がありました。 – harrism

+0

ありがとうございました。私の問題を解決しました。私は今MacOSXに移り、nvccを使ってコードをコンパイルして実行することができます。 – TheGame

関連する問題