2017-10-28 150 views
1

給定ar庫和可能的目標文件,找到所有未解析的外部符號的最佳方法是什麼?一種可能是運行鏈接器然後捕獲錯誤,但有時它會在一定數量的符號之後停止。有沒有更好的辦法?在明庫中查找缺失符號

回答

0

在你mingw-w64安裝的bin目錄,與 沿C和C++編譯器,鏈接器和make工具,你應該組成GNU binutils其他 程序。

其中幾個(nm,objdump,readelf)可以解析對象文件或共享符號表或靜態庫。最簡單的使用可能是nm。假設 該bin目錄在PATH,在目錄中打開命令提示符 包含的庫文件或目標文件你是 興趣和運行:

nm -u libfoo.a 

或:

nm -u foo.obj 

到請在libfoo.afoo.obj中列出未定義的符號。

如果這些文件包含要查看demangled的C++符號,然後 將-C添加到nm選項。

這些工具都承認,靜態庫libfoo.a只是 對象的歸檔文件,以便nm ... libfoo.a給你只是 相同的結果,如果libfoo.a與內它的對象 文件的列表被替換。