[英]How to find all EABI versions a GCC supports and how to find an EABI version of the target system?
這里有兩個問題:
將共享庫移植到許多Linux或Android上的ARM系統時,希望知道GCC交叉編譯器支持的確切EABI版本以及默認的EABI版本。 怎么做?
如何調查哪個EABI擁有目標Linux或Android系統? 我通常會從目標板上獲取任何系統庫,並調用$ARM-GCC-PREFIX-readelf -h $LIBNAME | grep Flags
$ARM-GCC-PREFIX-readelf -h $LIBNAME | grep Flags
返回我smth的$ARM-GCC-PREFIX-readelf -h $LIBNAME | grep Flags
。 就像Version4 EABI
。 但是,有什么漂亮的方法可以使我不需要將系統庫從目標復制到主機來運行readelf
嗎?
在我看來,您似乎已經找到了一種識別文件使用的ABI的真正方法。 我不知道有比readelf
更好的方法。
同樣, readelf
可能是確定編譯器使用的默認ABI的最佳方法。
編譯器實際上不允許您選擇任何特定的ABI版本。 它僅允許您在各種ABI變體之間進行選擇。 編譯器在編寫時僅實現當前的ABI。 無論如何,EABI應該是向后兼容的。
也許真正的問題是支持哪種架構? 還是什么float-abi? 這些對於構建特定設備非常重要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.