error LNK1120 and LNK2019:该符号在函数main中被引用
程序员文章站
2022-06-09 16:01:57
...
0x00 开篇
昨天,本来是一个好日子的,然后我默默的随便拿出一本C++书随便练练语法写写代码的,找到一行关于C++内函数指针的例子,其功能就是将一个函数的地址作为地址传给另一个函数,以指针的形式在另一个函数章调用,然后写完了,出现了传说中的error LNK2019,但是就是那个一个不到三十行的代码,让我找bug找了一个多小时,今天早上才找到。注意,本文无任何技术含量,权当吐槽一波了。
0x01 详情
原代码有点长,这里贴出那出错的一部分代码(与函数指针无关):
//有bug
#include <iostream>
#include <string>
using namespace std;
void display(const string str[], int n);
int main(int argc, char *argv[])
{
string str[3];
str[0] = "123";
str[1] = "qwe";
str[2] = "456";
display(str, 3);
return 0;
}
void display(const string str, int n)
{
using namespace std;
for (int i = 0; i < n; i++)
cout << i + 1 << ":" << str[i] << endl;
}
全怪我对自己的水平过于自信了,感觉自己不可能犯什么低级错误,我沿着是否是工程建的不对的方向上网搜搜:
- C++ VS2013 该符号在main中被引用
- C++ error LNK2019
- C++ 函数调用
从上面的问题可以看出,似乎我的状态是越来越迷惑,我就随便试试这么个功能就出现这么个问题,果然写代码的时候不能吊儿郎当的,最后简直都怀疑到C++函数调用上了,但是我就是没有老老实实看看原代码。到了早上,,我还是不能容忍居然那么几行代码还能藏个大bug,其实按照经验,我已经感觉到了这特么肯定是一个lowbie的bug,好了,那我看看代码吧,似乎一眼就看出来了:
void display(const string str, int n)
//改成下面就Ok了
void display(const string str[], int n)
其实已经习惯了,像那种在网上没搜到一点提示信息的,或者相同问题的,基本都是那种lowbie bug。就以此记录一下520改的第一个bug吧
推荐阅读
-
Visual Studio运行C++代码遇到:“error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCR...“问题,该怎么办?
-
error LNK1120 and LNK2019:该符号在函数main中被引用
-
错误 LNK2019 无法解析的外部符号 “operator<<(ostream&, const Square&)“,函数main中引用了该符号
-
vs2017 windows编程时出现 错误 LNK2019 无法解析的外部符号 _main,该符号在函数&amp;quot;...&amp;quot;中被引用
-
Visual Studio运行C++代码遇到:“error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCR...“问题,该怎么办?