#cuda #compiler-errors #nvcc
#cuda #ошибки компилятора #nvcc
Вопрос:
В gcc функция close используется для закрытия указателя на файл. Однако мой nvcc-компилятор этого не допустит. Кажется, я не могу найти специфичный для cuda вызов или псевдоним.
Существует ли специальный закрывающий указатель на файл cuda?
Это ошибка, которую я получаю. error: identifier "close" is undefined
Для этого простого кода; FILE* fp = fopen(filename,"r");
if(fp == NULL)
{
return NULL;
}
close(fp);
Комментарии:
1. Попробуйте fclose(). Nvcc не касается кода, он компилируется с помощью вашего хост-компилятора, и ошибка и вопрос не имеют ничего общего с CUDA.
Ответ №1:
Когда NVCC компилирует ваш .cu
файл, он делегирует компиляцию частей файла на C / C вашему собственному компилятору C / C (в вашем случае — gcc). Итак, ошибка исходит из gcc.
Вам нужно проверить, почему gcc выдает эту ошибку для кода в этом файле. Скорее всего, вы не включили необходимый заголовочный файл, в котором close()
определено, unistd.h
. Или попробуйте fclose()
, как предложил другой комментатор.