У меня есть следующий исходный файл (CUDA_Integral_Image.cu) для одноименного класса:
#include "cuda_runtime.h"
#include "npp.h"
#include "CUDA_Integral_Image.h"
#include <stdlib.h>
#include <time.h>
...
// allocated device source image
int step = width;
Npp8u* pSI = nppiMalloc_8u_C1(width, height, &step);
// copy test image up to device
cudaMemcpy2D(pSI, width, pHI, width, width, height, cudaMemcpyHostToDevice);
// allocate device result images
Npp32s* pDi = nppiMalloc_32s_C1(width,height,width*sizeof(int)); // LINE 30
Попытка скомпилировать этот код приводит к:
.../CUDA_Integral_Image.cu(30): error : unrecognized token
1>
.../CUDA_Integral_Image.cu(30): error : expected an identifier
1>
.../CUDA_Integral_Image.cu(30): error : unrecognized token
1>
.../CUDA_Integral_Image.cu(30): error : expected an expression
В CUDA_Integral_Image.h нет других заголовочных файлов. Все зависимости NPP (.h и lib), похоже, добавляются без проблем. Кроме того, Npp8u * и nppiMalloc_8u_C1 распознаются просто отлично. Я понятия не имею, что может быть причиной этой ошибки.
.. если я изменю код на:
Npp32s* pDi; // LINE 30
pDi = nppiMalloc_32s_C1(width,height,width*sizeof(int));
Я получаю ошибки:
.../CUDA_Integral_Image.cu(30): error : unrecognized token
1>
.../CUDA_Integral_Image.cu(30): error : expected an identifier
1>
.../CUDA_Integral_Image.cu(31): error : identifier "pDi" is undefined
1>
.../CUDA_Integral_Image.cu(31): error : unrecognized token
1>
.../CUDA_Integral_Image.cu(31): error : expected an expression
Не знаю, что может быть причиной этого, буду признателен за любые предложения!