Я испытываю эту проблему в Visual Studio 2012, используя CUDA 5.5, в файле FLOAT_UTIL_DEVICE.HCU, который предоставляется Nvidia. По аналогичным вопросам, это может быть вопросом структуры кода, но я не вижу никаких проблем:CUDA/C++: ошибка C3861: 'uint2float': идентификатор не найден
#include <vector_functions.h>
#include <device_functions.h>
//// ADDED BY ME FOR TEST PURPOSES
//inline __device__ float uint2float(unsigned int a)
//{
// return (float) a;
//}
//// END
inline __device__ float2 uintd_to_floatd(uint2 a)
{
return make_float2(uint2float(a.x), uint2float(a.y));
}
inline __device__ float3 uintd_to_floatd(uint3 a)
{
return make_float3(uint2float(a.x), uint2float(a.y), uint2float(a.z));
}
inline __device__ float4 uintd_to_floatd(uint4 a)
{
return make_float4(uint2float(a.x), uint2float(a.y), uint2float(a.z), uint2float(a.w));
}
Методы в вопросе должны быть определены в «device_functions.h» в соответствии с Nvidia документации. Если я раскомментирую тестовый код (который определяет функцию, которая отсутствует), я получаю новую ошибку: «более одного экземпляра перегруженной функции« uint2float »соответствует списку аргументов»; поэтому как-то он уже определен. Что мне не хватает?
Вы пытались добавить пространство имён перед ними? – Paddyd
Пожалуйста, разместите полное сообщение об ошибке. – Peter
@Peter: «ошибка C3861:« uint2float »: идентификатор не найден» - это полное сообщение об ошибке. – emher