2009-10-19 107 views
3

在Mac 10.5上使用xcode通過libtool和ar通過命令行創建一個靜態庫都會生成一個libMainProject.a文件,但是當試圖使用一個由libtool來鏈接到一個Xcode應用程序我最終喜歡libtool vs ar用於創建靜態庫(xcode鏈接器)

多個消息 「虛函數表的PROJECT1從引用: _ZTV27project1 $非_lazy _ PTR在libMainProject.a(project1.o)」

使用AR,在一個是完全正確的,鏈接正確。我嘗試在鏈接時添加-c選項到libtool,但似乎沒有影響。所以我想我的2個選項是

1)找出導致ar和libtool版本之間符號差異的原因,並使libtool生成相同的信息。

2)讓xcode使用ar而不是libtool來生成靜態庫。

任何意見或建議,將不勝感激。

在此先感謝。

回答

1

我建議用ar取消存檔靜態庫。您將以*.o文件結束。然後使用gobjdump(您可能必須從MacPorts/fink/homebrew自己安裝)來查看*.o文件中的內容,並比較兩個版本。