CUDAのNVCCでコマンドプロンプトでコンパイルしたいのですがエラーが出てきます。
環境は
Windows10 (64bit)
CUDA 9.1
こちらがソースコードです
#include <opencv2/opencv.hpp>
#include <opencv2/gpu/gpu.hpp>
#include <ocvlibs.h>
using namespace cv;
//--------------------------------------------------------------------------
//main
int main(int argc, char* argv[])
{
try
{
int wait = 1;
int numOfGpu = gpu::getCudaEnabledDeviceCount();
if (numOfGpu <= 0)
throw ("no Gpu available.");
VideoCapture capture;
if (argc == 2)
{
capture = VideoCapture(argv[1]);
wait = 33;
}
else
capture = VideoCapture(0);
const char* wName = "dst";
Mat src, dst;
gpu::GpuMat gpuSrc, gpuDst;
namedWindow(wName, CV_WINDOW_AUTOSIZE);
while (true)
{
capture >> src;
if (src.empty()) break;
gpuSrc.upload(src);
gpu::cvtColor(gpuSrc, gpuDst, COLOR_RGB2GRAY);
gpuDst.download(dst);
imshow(wName, dst);
if (waitKey(wait) >= 0) break;
}
}
catch (const char* str)
{
std::cout << str << std::endl;
}
catch (const cv::Exception* ex)
{
std::cout << "Error: " << ex->what() << std::endl;
}
return 0;
}
ヘッダファイルは特有のものなのでこちらに載せます。
//--------------------------------------------------------------------------
#ifdef _DEBUG //Debugモードの場合
#pragma comment(lib,"opencv_calib3d246d.lib")
#pragma comment(lib,"opencv_core246d.lib")
#pragma comment(lib,"opencv_contrib246d.lib")
#pragma comment(lib,"opencv_features2d246d.lib")
#pragma comment(lib,"opencv_flann246d.lib")
#pragma comment(lib,"opencv_gpu246d.lib")
#pragma comment(lib,"opencv_haartraining_engined.lib")
#pragma comment(lib,"opencv_highgui246d.lib")
#pragma comment(lib,"opencv_imgproc246d.lib")
#pragma comment(lib,"opencv_legacy246d.lib")
#pragma comment(lib,"opencv_ml246d.lib")
#pragma comment(lib,"opencv_objdetect246d.lib")
#pragma comment(lib,"opencv_ts246d.lib")
#pragma comment(lib,"opencv_video246d.lib")
#else //Releaseモードの場合
#pragma comment(lib,"opencv_calib3d246.lib")
#pragma comment(lib,"opencv_core246.lib")
#pragma comment(lib,"opencv_contrib246.lib")
#pragma comment(lib,"opencv_features2d246.lib")
#pragma comment(lib,"opencv_flann246.lib")
#pragma comment(lib,"opencv_gpu246.lib")
#pragma comment(lib,"opencv_haartraining_engine.lib")
#pragma comment(lib,"opencv_highgui246.lib")
#pragma comment(lib,"opencv_imgproc246.lib")
#pragma comment(lib,"opencv_legacy246.lib")
#pragma comment(lib,"opencv_ml246.lib")
#pragma comment(lib,"opencv_objdetect246.lib")
#pragma comment(lib,"opencv_ts246.lib")
#pragma comment(lib,"opencv_video246.lib")
#endif
こちらがエラーになります。
GPUGPU.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\include\cuda_runtime_api.h(1950): warning C4819: ファイルは、現 在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してく ださい。
c:\program files\nvidia gpu computing toolkit\cuda\v9.1\include\crt\math_functions.h: warning C4819: ファイルは、現在の コード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してくださ い。
c:\program files\nvidia gpu computing toolkit\cuda\v9.1\include\crt\math_functions.h(838): warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してく ださい。
c:\program files\nvidia gpu computing toolkit\cuda\v9.1\include\crt\math_functions.h(1772): warning C4819: ファイルは、 現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存して ください。
c:\program files\nvidia gpu computing toolkit\cuda\v9.1\include\crt\math_functions.h(2628): warning C4819: ファイルは、 現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存して ください。
c:\program files\nvidia gpu computing toolkit\cuda\v9.1\include\crt\math_functions.h(3477): warning C4819: ファイルは、 現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存して ください。
c:\program files\nvidia gpu computing toolkit\cuda\v9.1\include\crt\math_functions.h(4417): warning C4819: ファイルは、 現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存して ください。
c:\program files\nvidia gpu computing toolkit\cuda\v9.1\include\crt\math_functions.h(5319): warning C4819: ファイルは、 現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存して ください。
c:\program files\nvidia gpu computing toolkit\cuda\v9.1\include\crt\math_functions.h(6229): warning C4819: ファイルは、 現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存して ください。
c:\program files\nvidia gpu computing toolkit\cuda\v9.1\include\crt\math_functions.h(7104): warning C4819: ファイルは、 現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存して ください。
c:\program files\nvidia gpu computing toolkit\cuda\v9.1\include\crt\math_functions.h(7914): warning C4819: ファイルは、 現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存して ください。
c:\program files\nvidia gpu computing toolkit\cuda\v9.1\include\crt/device_functions.h: warning C4819: ファイルは、現在 のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してくだ さい。
c:\program files\nvidia gpu computing toolkit\cuda\v9.1\include\crt/device_functions.h(776): warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存して ください。
c:\program files\nvidia gpu computing toolkit\cuda\v9.1\include\crt/device_functions.h(1636): warning C4819: ファイルは 、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存し てください。
c:\program files\nvidia gpu computing toolkit\cuda\v9.1\include\crt\device_double_functions.h: warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存し てください。
c:\program files\nvidia gpu computing toolkit\cuda\v9.1\include\sm_20_intrinsics.h: warning C4819: ファイルは、現在のコ ード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください 。
c:\program files\nvidia gpu computing toolkit\cuda\v9.1\include\sm_20_intrinsics.h(925): warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してくだ さい。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\bin/../include\float.h(57): fatal error C1021: プリプロセッサ コマンド 'include_next' が無効です。
ヘッダファイルはちゃんと読み込めているはずなのにエラーが出る理由がいまいちわかりません。
なぜこのようなエラーが出るのでしょうか?
どうか解決のためにお力を貸していただけないでしょうか?