同じファイル mainFunc.cu で kernelAdd() 関数と main() 関数を使用してコードをビルドすると、問題ありません。
しかし、kernelAdd.cu ファイルの kernelAdd() 関数と main.cpp ファイルのメイン ファイルを分離すると、次の 2 つのエラーでビルドされます。
「エラー C2065: 'add': 宣言されていない識別子」
および「エラー C2059: 構文エラー: '<'」
Visual Studio 2008 と Cuda v5.0 でビルドしました。
また、そのエラーを修正するにはどうすればよいですか?
ありがとう!
kernelAdd.cu
__global__ void add(int a, int b, int *c) {
*c = a + b;
}
mainFunc.cpp
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include <stdio.h>
#include <conio.h>
int main(void) {
int c;
int *devC;
cudaMalloc((void**) &devC, sizeof(int));
add<<<1,1>>>(2,7,devC);
cudaMemcpy(&c, devC, sizeof(int), cudaMemcpyDeviceToHost);
printf("2+7=%d\n", c);
cudaFree(devC);
getch();
return 0;
}