いちばん失敗した人決定戦

こちらのプログラム

#include <stdio.h>

__global__ void kernel( void ) {
}

int main( void ) {
kernel<<<1,1>>>();
printf( "Hello, GPU World!\n" );
return 0;
}

をCUDAのnvccでコンパイルしたところ以下のエラーが出ました。簡単なプログラムのはずなのにこんなにたくさんのエラーが出る理由がいまいちわかりません。何が問題なのでしょうか?
hello_gpu.cu
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\bin/../include\cuda_runtime.h: warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してくださ い。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\bin/../include\w32api.h(186): warning C4005: '_EXTERN_C': マクロが再定義されました。
C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/../../VC/INCLUDE\yvals.h(560): note: '_EXTERN_C' の以前の定義を確認してください
c:\program files\nvidia gpu computing toolkit\cuda\v9.1\include\cuda_runtime_api.h(1950): warning C4819: ファイルは、現 在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してく ださい。

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\bin/../include\strings.h(80): error: expected an identifier

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\bin/../include\strings.h(81): error: expected an identifier



c:\program files\nvidia gpu computing toolkit\cuda\v9.1\include\wchar.h(397): error: variable "size_t" has already been defined

c:\program files\nvidia gpu computing toolkit\cuda\v9.1\include\wchar.h(397): error: expected a ";"


Error limit reached.
100 errors detected in the compilation of "C:/Users/Daito/AppData/Local/Temp/tmpxft_0000ce6c_00000000-12_hello_gpu.cpp1.ii".
Compilation terminated.

A 回答 (1件)

コード932とか出てる


これ文字化けの話かな。

どのOSでビルドしてるのかわかりませんが。
コンパイルリンクを動かしてる環境のエンコードや、
コンパイラー、リンカーが想定してるエンコード
と、
実際のソースやヘッダーのエンコードがあってないのかな。

cudaてなんでしょう。
あとから、追加したものですか?
それの提供元では
そこのソースやヘッダーのエンコードは、なんと情報ありますか。

今のものは、バックアップとしてとっておいて、
なにかで、エンコードを変換できれば。。
なんでしょうか。
警告にファイルをUnicodeで保存して。など書いてる。

もっとも、これに従ってうまくいく保証もないが。

他のエラーは、二次的なものだと思うですが。

なにやら、再定義されました
など出力されるのは、
気になります。
だかは、エンコードの話が解決してもこれは残るかもです。

cudaってなんですか
提供元が日本だから、
ソースやヘッダーが
コードページ932、
Shift_JISか、Windows-31Jかな、でエンコードされてて。

コンパイルリンクしようとしてるエンコードにあってないのか。

その警告やエラーがでてる
ファイルの中身見てみたら、
コメントや、"文字列"
のところに日本語含まれてませんか。
そして、桜エディタとかで開いてみてエンコード見たら。
Shift_JISか、Windows-31Jとかになってたりしないか。

ファイルのエンコードか、
ビルドしようとしてるエンコードか、どっちかをあわせこむんでしょう
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!