正确解决“error LNK2019: 无法解析的外部符号....该符号在函数 ...中被引用“的有效解决方法

正确解决"error LNK2019: 无法解析的外部符号…该符号在函数 …中被引用"的有效解决方法

报错问题

error LNK2019: 无法解析的外部符号…该符号在函数 …中被引用

报错原因

LNK2019 是 Microsoft Visual Studio(包括 Visual C++)中的链接器错误,表示链接器在尝试创建最终的可执行文件或库时,无法找到某个函数、变量或对象的定义。这通常是因为以下几个原因造成的:

1.声明但未定义:你可能在一个头文件中声明了一个函数或变量,但在任何源文件中都没有定义它。
2.拼写或大小写错误:C++ 是大小写敏感的,因此 myFunction 和 myfunction 是不同的。如果你在一个地方声明了函数,但在另

C++ 代码中出现 `error LNK2019` 无法解析外部符号 `_GetSystemTimes` 错误,通常是由于链接器找不到该函数的实现。`GetSystemTimes` 是 Windows API 函数,出现此错误可能有以下原因及解决办法: #### 1. 缺少必要的库文件 `GetSystemTimes` 函数在 Windows 系统中属于 Windows API,其实现位于 `Kernel32.lib` 库中。如果没有链接该库,链接器就无法找到函数的实现。 在 Visual Studio 中,可以通过以下方式添加库文件: - 项目属性 -> 配置属性 -> 链接器 -> 输入 -> 附加依赖项,添加 `Kernel32.lib`。 也可以在代码中使用 `#pragma comment` 指令来指定链接库: ```cpp #pragma comment(lib, "Kernel32.lib") ``` #### 2. 头文件包含问题 确保在代码中包含了正确的头文件。`GetSystemTimes` 函数的声明在 `<windows.h>` 头文件中,需要在使用该函数的源文件中包含此头文件: ```cpp #include <windows.h> ``` #### 3. 函数调用错误 检查函数调用是否正确,包括函数名的大小写、参数类型和数量等。`GetSystemTimes` 函数的原型如下: ```cpp BOOL GetSystemTimes( LPFILETIME lpIdleTime, LPFILETIME lpKernelTime, LPFILETIME lpUserTime ); ``` 以下是一个完整的示例代码,展示了如何正确使用 `GetSystemTimes` 函数: ```cpp #include <iostream> #include <windows.h> #pragma comment(lib, "Kernel32.lib") // 获取 CPU 使用率 double getCPULoad() { FILETIME idleTime, kernelTime, userTime; if (GetSystemTimes(&idleTime, &kernelTime, &userTime) == 0) { return 0.0; } // 后续计算逻辑... return 0.0; } int main() { double cpuLoad = getCPULoad(); std::cout << "CPU Load: " << cpuLoad << std::endl; return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值