7
A
回答
7
靜態庫基本上只是對象文件的集合。它通常只是目標文件的ar
存檔。使用ar
,可以從庫中提取目標文件,向其添加不同的目標文件等。
一般來說,動態庫和共享目標文件之間的區別是目標 - Windows使用動態庫,Linux使用共享對象。還有一點點不同,但不是很多。
1
動態(共享)庫使用PIC代碼 - 無論內存中多個可執行文件使用的庫的實際物理位置如何,代碼都可以工作。
靜態庫在鏈接階段鏈接到可執行文件中以創建可執行文件。
動態庫的優點是內存中可執行文件的佔用空間更小。靜態庫的優勢在於,您只需提供可執行文件即可,而無需使用動態庫並且運行速度更快,無需任何工作即可使庫存在物理內存中的任何位置。
0
如果碎片庫被多個可執行文件使用,則會節省磁盤空間。如果多個可執行文件使用共享庫中的相同函數。正在運行,每個都會得到自己的副本。磁盤上的可執行文件都不會包含該函數的代碼,而是包含對共享庫的引用。
相關問題
- 1. 靜態庫和動態庫之間有什麼區別
- 2. eclipse中靜態和動態web項目之間的區別
- 3. 靜態庫和共享庫之間的區別?
- 4. 目標文件和靜態庫(存檔文件)有什麼區別?
- 5. Makefile.am中的靜態和靜態LD_FLAGS之間的區別
- 6. 鎖定(this)和靜態對象鎖定之間的區別
- 7. 轉到http:服務/靜態和/靜態之間的區別/
- 8. 靜態變量和靜態方法之間的區別
- 9. 最終靜態int和靜態最終int之間的區別?
- 10. 靜態聲明和非靜態聲明之間的區別
- 11. .o目標文件和.so庫文件之間的區別是什麼?
- 12. 靜態鏈接庫和動態鏈接庫之間的區別是什麼
- 13. 正常定製事件之間的區別靜態RoutedEvent
- 14. render_template和重定向之間的區別?
- 15. OpenMP中的靜態和動態調度之間的區別C
- 16. 靜態綁定和數組的動態綁定之間的區別
- 17. MSBuild的目標屬性和目標標記之間的區別
- 18. 靜態和動態頁面之間的區別?
- 19. 靜態和動態之間的區別鑄造
- 20. 靜態鏈接和動態鏈接之間的區別
- 21. IIS7:靜態和動態內容壓縮之間的區別
- 22. 靜態和動態數組之間的區別
- 23. 用於iPhone的Xcode中靜態和動態庫之間的區別
- 24. 背景附件之間的區別:固定和位置:固定
- 25. html中定位標記中href和data-href之間的區別
- 26. Java的靜態成員和C++的靜態成員之間的區別
- 27. 對象中的靜態方法和非靜態方法之間的區別
- 28. IMPORTED目標和INTERFACE庫之間有什麼區別?
- 29. * .php和* .html文件之間的區別
- 30. X3D和X3DV文件之間的區別
但我的問題是關於「庫vs對象文件」而不是「靜態vs動態庫」。我的英語也不是很好:)。所以,如果這一切都是因爲糾結的問題寫作 - 請告訴我。 – Jofsey 2012-03-16 18:26:26
一個庫只是一個文件集合。只要確保收集既可以是共享的,也可以是靜態的。我的答案是告訴你讓文件被共享或靜態的區別。 – 2012-03-16 18:31:35
你的答案在每一個細節都是不正確的;-(在ix86 Linux上,你可以從非'PIC'代碼創建共享庫,靜態庫可以包含'-PIC'代碼,並且可以鏈接到共享庫。使用動態鏈接的可執行文件的佔用空間大於不可用 – 2012-03-17 03:17:57