簡體   English   中英

GCC編譯的靜態庫包含什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM