错误 LNK2019:未解析的外部符号NvAPI_GPU_GetThermalSettings引用

error LNK2019: unresolved external symbol NvAPI_GPU_GetThermalSettings referenced in

本文关键字:NvAPI 符号 GPU 引用 GetThermalSettings 外部 LNK2019 错误      更新时间:2023-10-16

我正在尝试编写一个简单的代码,用于从我的GPU(NVidia Geforce 760 GTX(获取一些信息,例如使用NVAPI的温度。
我从 CUDA 示例代码开始。也许您会看到NVidia提供的这些示例代码。我复制了一个示例代码("CUDA 样本\v6.5\0_Simple\vectorAdd"(来编写此示例。我将NVAPI的所有".h"文件复制到"CUDA Samples\v6.5\common\inc",并将"nvapi.lib"复制到"CUDA Samples\v6.5\common\lib\Win32",并将"nvapi64.lib"复制到"CUDA Samples\v6.5\common\lib\x64"。
我将这些副本预制为"C:\Program Files\CUDA\v6.5\include"和"C:\Program Files\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: %sn", string);
}
NvAPI_ShortString ver;
NvAPI_GetInterfaceVersionString(ver);
printf("NVAPI Version: %sn", 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: %sn", 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: %sn", string);
}
printf("Name: %sn", 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: %sn", string);
}
printf("Temp: %l Cn", thermal.sensor[0].currentTemp);
return 0;

}

但是当我构建代码时,我收到了这些错误:

错误

28 错误 LNK2019:函数中引用NvAPI_GPU_GetThermalSettings未解析的外部符号...
错误 29 错误 LNK2019:函数中引用未解析的外部符号NvAPI_GPU_GetFullName...
和一些类似的错误。

您需要转到项目属性并展开链接器选项 -> 输入,然后在"其他依赖项"选项中添加所需的 nvapi*.lib 文件。