2010-04-14 30 views
1

我在編譯爲32位Linux計算機的二進制靜態庫libfoo.a。我想編譯它與我用cygwin編譯的win32項目。linkning Linux的靜態庫使用Cygwin

這可能嗎?這似乎是可能的,因爲檔案中的所有目標文件都應該採用標準的ELF格式。

但是,我一直在收到有關nmlibfoo.a中找到的函數的鏈接錯誤。 當我創建了一個存根libfoo.a這與其他libfoo.a的同名一些空的功能,我沒有收到任何再連接那些功能的錯誤。

這是甚至可能或我錯過了什麼? 無論如何,我該如何解決這個問題?

回答

0

即使你鏈接時,你將無法避免的建立在不同平臺的代碼不兼容成功。例如,標題(glibc和其他)在那裏不同。爲確保兼容性,類似於mangling的附加機制似乎用於由目標文件導出的符號。

試圖聯繫在一起對象編譯成不同的處理器架構文件時,我遇到過類似你這樣的問題 - 納米顯示所有需要的功能都存在,但是連接不相信。