天天看點

GCC/G++常見連結錯誤

連結錯誤的直接表現就是:****符号未定義。幾種常見的連結錯誤如下:

缺少*.o檔案          ---- 對策:将相應的檔案加入Makefile或指令行

*.o檔案未更新       ---- 對策:删除舊*.o檔案重新編譯或者依賴于最新的depend來編譯(增删檔案時確定make depend)。

缺少相應的庫檔案  ---- 對策:将相應的檔案加入Makefile或指令行

依賴的庫檔案版本不對或未更新 ---- 對策:重新生成所依賴的庫檔案

庫檔案的出現順序不對 ----- 對策:根據庫的依賴關系,調整庫出現的順序。原則:隻允許先出現的庫依賴于後出現的庫。

其中,第5種錯誤最難發現。如果發現程式所需的庫都已經引入,但仍出現連結錯誤,應理清庫之間的依賴關系,确認是否某些基本庫被放到前面,導緻後面的庫無法找到前面庫中的符号資訊!據說對于高版本gcc沒有這個問題。

本文轉自 zhenjing 部落格園部落格,原文連結:http://www.cnblogs.com/zhenjing/archive/2011/04/20/2021780.html   ,如需轉載請自行聯系原作者

繼續閱讀