c++链接过程中undefined reference to 错误的原因

本文探讨了在软件开发过程中常见的编译与链接错误,包括找不到符号定义、头文件缺失、库文件版本不匹配等问题,并提供了详细的解决方案,帮助开发者快速定位并解决编译时遇到的各类错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 如果一个symbol没有被定义,在编译过程中就会报找不到定义的错误
  • 如果是头文件找不到,也会直接报出头文件不存在的错误
  • 有些时候编译出来的lib被移走了,运行的时候会直接报lib不存在的错误,或者编译的时候报找不到lib
  • 如果链接中出现undefined reference to,有两种可能:
    • 一个是忘记设置某个symbol的lib
      • 自己编译的lib多是因为这个问题,只设置了头文件,没有设置lib(静态和动态lib都一样)
    • 设置了lib,lib也找到,但是版本不对,被找到的版本中正好缺少需要的那个symbol
      • 经常和写的东西完全无关的lib报这个错误。多是因为环境变量发生变化后。比如新装了某个以前已经有的库。然后就链接到新这个库上了,但是新的库和之前比,缺少某些symbol。这个时候一定要把缺少symbol的库找出来,然后把系统中存在的所有这个库都找出来,然后想办法让程序找到正确的那个库。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值