編譯時出現莫名其妙的undefined symbol的可能原因


前言

公司里需要開發多個動態庫鏈接在一起的程序,然而經常在一些地方出現莫名其妙的undefined symbol問題

解決方案

1.檢查Makefile/CMakeList.txt,查看是否包含所有需要包含的文件/文件夾。 錯誤原因:有時候由於新添加了一個文件/文件夾,而該文件/文件夾又沒有被Makefile/CMakeList.txt掃描到,這時候就會在實際運行時出現undefined symbol,原因是編譯時找到了對應的頭文件,卻在鏈接時未找到需要的頭文件。

2.查看對應函數在頭文件和Cpp文件中是否有相同的函數結構。 錯誤原因:有時候往往是先把一堆頭文件先寫好,結果在寫實現時容易忘記寫一兩個函數實現,然后就容易編譯過了,但鏈接時沒過,因為鏈接時需要把頭文件和Cpp文件鏈接在一起。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM