2つのファイルだけで構成される単純なcudaプログラムをコンパイルするのに苦労しています。
main.cは次のようになります。
#include "my_cuda.h"
int main(int argc, char** argv){
dummy_gpu();
}
cuda.hは次のようになります。
#ifndef MY_DUMMY
#define MY_DUMMY
void dummy_gpu();
#endif
そして、my_cuda.cuファイルは次のようになります。
#include <cuda_runtime.h>
#include "my_cuda.h"
__global__ void dummy_gpu_kernel(){
//do something
}
void dummy_gpu(){
dummy_gpu_kernel<<<128,128>>>();
}
ただし、コンパイルすると、常に次のエラーが発生します。
gcc -I/usr/local/cuda/5.0.35/include/ -c main.c
nvcc -c my_cuda.cu
gcc -L/usr/local_rwth/sw/cuda/5.0.35/lib64 -lcuda -lcudart -o md.exe main.o my_cuda.o
main.o: In function `main':
main.c:(.text+0x15): undefined reference to `dummy_gpu'
collect2: ld returned 1 exit status
ご協力ありがとうございました。