test.cu:
#include <iostream>
#include "book.h"
__global__ void add( int a, int b, int *c ) {
*c = a + b;
}
int main( void ) {
int c;
int *dev_c;
HANDLE_ERROR( cudaMalloc( (void**)&dev_c, sizeof(int) ) );
add<<<1,1>>>( 2, 7, dev_c );
HANDLE_ERROR( cudaMemcpy( &c,
dev_c,
sizeof(int),
cudaMemcpyDeviceToHost ) );
printf( "2 + 7 = %d\n", c );
cudaFree( dev_c );
return 0;
}
我正在尝试编译上面的示例test.cu.我试过用nvcc test.cu但是编译器给出了错误
4.cu:2:18: fatal error: book.h: No such file or directory
compilation terminated.
如何告诉编译器book.h在哪里?我在/ usr / local / cuda中安装了CUDA。 我需要制作Makefile吗? 我是CUDA和Makefile的新手,所以问题似乎微不足道。
答案 0 :(得分:2)
我认为使用引号(“”)告诉编译器查找与代码文件相同的目录,因此您可能希望尝试<book.h>
而不是"book.h
。
假设book.h是CUDA附带的文件。我以前从未使用过它。
答案 1 :(得分:2)
Book.h不是CUDA。它被“Cuda by Example”用于一些简单的东西
在这个例子中需要提供HANDLE_ERROR,你应该编写自己的代码来处理错误。
在这里你可以找到book.h代码:http://code.google.com/p/cuda-examples/source/browse/trunk/common/book.h?r=3