Qt中undefined reference to报错的三种可能性和解决方法(以libgdal为例)
有一段代码很久没动了,今天想跑起来编译看看,突然发现出现一堆报错,如下:
好吧,首先我能保证的是,有之前调试代码过程中,这些报错一定是没有出现的。最近也没什么动作,怎么就忽然就出现了。
不管怎么说,解决问题是关键。
单纯这个报错内容来看,很典型的undefined reference to的报错,这个报错在调用第三方库的编程中,简直是家常便饭,代表的含义也很明确,就是找不到函数的定义。
用C++写代码的都知道,在C++中,代码是分为声明和定义的,声明就是告诉编译器有这个函数,换言之,就是个名字,而定义,就是具体这个函数的实现内容。
类似这个报错的,还会有一种报错是undeclared的报错,这大概就是函数声明的报错。
言归正传,undefined reference to的报错一般怎么处理
当发现上述两点都不是原因之后,说明从这里能获取的报错信息就不足以解决这个问题了,于是,这个时候,就把目光转移到编译输出的那个tab页中,查找蛛丝马迹。然后就发现了问题的关键。在编译输出的内容中,有这样的报错
问题就明显了,缺少了很多的libgdal的依赖库,这个就让我很摸不着头脑了,明明之前没有这些报错,说明依赖都没问题的,怎么突然就出现问题了。我认真回忆了一下,怀疑可能是在卸载别的软件的时候,利用sudo apt autoremove时,把一些依赖给误删了。
问题是很好解决的,就是把缺的依赖再给他装上去就好了,特别提醒一下,别的依赖都好找,直接sudo apt install XXXXX多试几回,基本也就找到了,这其中有两个库不是很好找,libmfhdfalt和libdfalt,这两个库需要安装libhdf4-alt-dev来解决。
那么总结一下,出现undefined reference to报错的可能原因有三条:
总结
以上是生活随笔为你收集整理的Qt中undefined reference to报错的三种可能性和解决方法(以libgdal为例)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 建设银行安徽分行副行长王文兵:金融科技赋
- 下一篇: 【EXLIBRIS】#小词旮旯# 004