我试图编写一个简单的代码从我的GPU (NVidia Geforce 760 GTX)获得一些信息,比如使用NVAPI的温度。
我从CUDA的样本代码开始。也许您看到了NVidia提供的这些示例代码。我复制了一个示例代码('CUDA Samples\v6.5\0_Simple\vectorAdd')在这个示例中编写。我将NVAPI的所有'.h‘文件复制到'CUDA示例\v6.5\公用\inc’,将'nvapi.lib‘复制到'CUDA示例\v6.5\公用\lib\Win32 32’,并将‘nevi64.lib’复制到'CUDA示例\v6.5\公用\lib\x64‘。
我将这些副本预置到'C:\Program \CUDA\v6.5\include‘和'C:\Program \CUDA\v6.5\lib’。
这就是我写的代码:
int _txmain() {
NvAPI_Status ret = NVAPI_OK;
int i=0;
NvDisplayHandle hDisplay_a[NVAPI_MAX_PHYSICAL_GPUS*2] = {0};
ret = NvAPI_Initialize();
if (!ret == NVAPI_OK){
NvAPI_ShortString string;
NvAPI_GetErrorMessage(ret, string);
printf("NVAPI NvAPI_Initialize: %s\n", string);
}
NvAPI_ShortString ver;
NvAPI_GetInterfaceVersionString(ver);
printf("NVAPI Version: %s\n", ver);
NvU32 cnt;
NvPhysicalGpuHandle phys;
ret = NvAPI_EnumPhysicalGPUs(&phys, &cnt);
if (!ret == NVAPI_OK){
NvAPI_ShortString string;
NvAPI_GetErrorMessage(ret, string);
printf("NVAPI NvAPI_EnumPhysicalGPUs: %s\n", string);
}
NvAPI_ShortString name;
NV_GPU_THERMAL_SETTINGS thermal;
ret = NvAPI_GPU_GetFullName(phys, name);
if (!ret == NVAPI_OK){
NvAPI_ShortString string;
NvAPI_GetErrorMessage(ret, string);
printf("NVAPI NvAPI_GPU_GetFullName: %s\n", string);
}
printf("Name: %s\n", name);
thermal.version =NV_GPU_THERMAL_SETTINGS_VER;
ret = NvAPI_GPU_GetThermalSettings(phys,0, &thermal);
if (!ret == NVAPI_OK){
NvAPI_ShortString string;
NvAPI_GetErrorMessage(ret, string);
printf("NVAPI NvAPI_GPU_GetThermalSettings: %s\n", string);
}
printf("Temp: %l C\n", thermal.sensor[0].currentTemp);
return 0;}
但是,当我构建代码时,我收到了以下错误:
错误28错误LNK2019:函数.中引用的未解析外部符号NvAPI_GPU_GetThermalSettings 错误29错误LNK2019:函数.中引用的未解析外部符号NvAPI_GPU_GetFullName 还有一些类似的错误。
发布于 2015-03-15 18:45:43
您需要转到您的项目属性并展开链接器选项->输入,并在附加依赖项选项中添加所需的nvapi*.lib文件。
https://stackoverflow.com/questions/27472116
复制相似问题