LoginSignup
10
11

More than 5 years have passed since last update.

CUDAコンパイラ(nvcc)でVisualStudioコンパイラ(cl)の特定の警告を無効にする方法

Last updated at Posted at 2012-12-05

ThrustとかをVisualStudioでコンパイルすると、C4819警告が大量に出てめんどくさい、とかいう状況になりますよね。

で、普通にVisualStudioのコンパイラ(cl)でやるときは、/wd 4819とオプションに付け加える(「プロジェクトのプロパティ>構成プロパティ>C/C++>詳細設定>指定の警告を無効にする」で4819と指定する)だけで無視できるんですが、CUDAのコンパイラ(nvcc)にはそんなオプションがありません。
といっても、nvccはホストとデバイスを分離した後、ホスト側のコードはclでコンパイルするはずなので、どうにかcl用のコンパイラオプションを直接渡せばいいわけです。

でも簡単に見つからなかったので聞いてみました。そしたら、nvccには-Xcompilerという、ホストコンパイラ(clなど)に直接オプションを渡すことの出来るオプションがあるというじゃないですか!調べたら確かにありました(なんで気づかなかった・・・)。

というわけで、例えばC4819警告を無視するには、「構成プロパティ>CUDA C/C++>Command Line>追加オプション」に
-Xcompiler "/wd 4819"
と入れればできました。やったね200個ぐらい出てた警告がなくなったよ!

ちなみにこれ別に警告を無視する以外にもclに渡したいオプションがあればできるっぽいので、必要なときは使っていこうと思いました。

10
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
11