Привет ... я использую VS2008, программирую на CUDA C. У меня установлен и работает инструментарий 3.2.
Теперь моя проблема в том, что у меня есть файл с таким:
#ifndef _cuda_rng_cu_included_
#define _cuda_rng_cu_included_
#include <stdio.h>
static void HandleError( cudaError_t err,
const char *file,
int line ) {
if (err != cudaSuccess) {
printf( "%s in %s at line %d\n", cudaGetErrorString( err ),
file, line );
exit( EXIT_FAILURE );
}
}
#define HANDLE_ERROR( err ) (HandleError( err, __FILE__, __LINE__ ))
//some other struct
Я получил этот код из книги CUDA на примере, поэтому он должен работать .. но когда я нажимаю build, я получаю эту ошибку (первую):
error C2065: 'cudaError_t' : undeclared identifier
, а затем добавляется цунами ошибок, например uint2
тип не найден и переменные не объявлены.
В чем может быть проблема?cudaError_t определено в $ (CUDA_PATH_V3_2) \ include, и этот путь находится в моем обязательном каталоге include.
Свойство файла установлено так: Tool: CUDA Runtime API
Я поместил этот #ifndef, потому что яЯ не разобрался, как работать с компоновщиком между обычным C ++ и CUDA C. Например, если у меня есть структура с CUDA C (__global__
и ` __device__
) и некоторыми обычными методами.Если я назову этот файл .cu
, то в обычном коде C ++, использующем эту структуру, будет напечатана ошибка, говорящая, что она не была объявлена.
Я попытался вручную включить driver_types.h
и тонны других заголовков, нони один из них не найден компилятором.
Извините, если я не понял, я сонный.