error LNK2019: unresolved external symbol

当程序调用未定义的函数如Log,编译期间不会报错,但在链接阶段会因找不到对应实现引发LNK2019错误。若不调用该函数,则无错误。使用static声明可限制函数在本地文件作用,避免链接错误。
摘要由CSDN通过智能技术生成

error LNK2019: unresolved external symbol:链接器找不到所需要的东西

在这里插入图片描述

此时ctrl+F7进行编译,没有报错,在这个程序中调用的是Log函数,我们实际上并没有这个函数,
我们有的函数是Logr函数,在编译过程中编译器认为我们是存在这个名为Log的函数,编译时是不会去确认是否存在这个函数的,编译器时信任我们的


但在build构建整个项目时,我们需要进行链接找到此函数,然而在此程序中并没有Log函数的存在,
只有Logr函数的存在,因此会报错error LNK2019: unresolved external symbol找不到链接所需的东西

但是如果我们不对函数进行调用的话,会出现什么情况

如果我们在Multiply函数中注释掉Log函数,在生成项目时就不会报错
因为我们在从来没有调用过Log函数,所以不需要去链接

但是如果我们在函数中调用了这个函数,却不去使用他会发生什么情况

还是会出现报错,因为虽然我们现在没有使用,但是有可能会在其他的文件中调用这个函数,		
所以链接器还是需要链接它。
但是如果我们声明只在这个文件中使用,那么我们就可以避免报错

在这里插入图片描述

使用static静态声明,可以声明这个函数只在本文件中使用;
如果本文件不使用,则可以不进行链接。

此外,如果调用函数的类型、参数等和已有函数的类型、参数不同也会出现error LNK2019: unresolved external symbol。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值