2012-08-31 26 views
0

我從某處獲得了abc.so lib,而使用gcc4.4.3時出現錯誤,表明此abc.so是不兼容的類型。任何想法如何找到這個lib的版本。動態確定從C/C++源生成的任何動態庫的gcc版本

+0

還從「某處」獲得有關該二進制文件的更多信息? –

+0

它就像一個錯誤的32位/ 64位類型? –

+1

它是unix嗎?如果是這樣,你可以用''file''命令檢查文件的格式。它可能只是錯誤的架構。 – juanchopanza

回答

0

在Unix下:

列表從二進制字符串,並簡單地用grep的GCC版本:

strings -a <binary>| grep "GCC:" 

這會給你用於構建二進制版本的編譯器。但我不確定這是你想知道的。 您也可以通過使用readelf -h <binary>

+0

我想鏈接一個動態庫,並得到這個錯誤:「文件無法識別:文件格式無法識別」。我不確定發生了什麼問題。所以試着用gcc版本運氣。但沒用。任何想法我該怎麼做。 – user1637941

+0

'file <你的庫文件>的輸出是什麼? – phsym

+0

abc.so::ELF 64位LSB共享對象,AMD x86-64,版本1(SYSV),未去除 – user1637941