C++出现Link2019的情况和解决方案
编程语言
2023-07-12 06:17:14
阅读次数: 0
1.出现Link2019
- 错误信息:LNK2019 无法解析的外部符号 "void __cdecl Log(char const *)" (?Log@@YAXPEBD@Z),该符号在函数 main 中被引用
- 遇到原因,因为在链接的过程中,找不到声明函数的方法体
- 代码情况:
文件A: #include <iostream>
// 这里定义了一个Logr()函数,但是不存在Log()
void Logr(const char* message) {
std::cout << message << std::endl;
}
文件B:
#include <iostream>
// 声明Log函数,但是没有方法体,链接会在编译后的obj文件里面,进行寻找
// 如果没有找到,就会出现Link2019
void Log(const char* message);
int main() {
Log("Hello world!");
std::cin.get();
}
- 解决方案:
1. 在文件B里面,停止调用Log()函。链接不会去寻找没有进行调用的函数
2.给Log()函数一个方法体,把Logr()函数 修改为 Log()
- 补充:返回值函数 函数名(参数,参数,......)定义必须一样,要不然链接无法找到
void Log(const char* message);
void Log(const char* message,int num);
// 两个函数不一样,因为参数不同
转载自blog.csdn.net/dantui_/article/details/130114440