[英]What does a GCC compiled static library contain?
我的應用程序鏈接libsamplerate.a。 我這樣做是為了讓分發最終二進制文件更容易。
我擔心.a文件中的代碼可能依賴於我還需要分發的其他一些庫。
但是,如果不是,我擔心我通過包含例如多個副本而過多地膨脹我的應用程序。 libc中。
libsamplerate.a里面究竟是什么? 只是libsamperate的字節碼? 或者更多?
.a文件基本上只是一組.o文件。 您可以使用ar
工具演示這一點。
例如,要顯示庫的內容:
ar -t libsamplerate.a
要從頭創建.a文件:
ar -r tim.a *.txt
靜態庫只是目標文件的集合。 當您針對靜態庫編譯程序時,程序使用的函數的目標代碼將從庫中復制到可執行文件中。 鏈接靜態庫不會導致該庫外的任何函數包含在您的代碼中。
只是libsamplerate的目標代碼。 靜態鏈接單個庫並不會使所有庫靜態鏈接; 那會很糟糕。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.