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