0
既然目標文件(ET_REL,* .o)必須有部分,而動態庫(ET_DYN,* .so)同時包含段和段,那麼* so文件可以靜態鏈接,即使它旨在用於動態鏈接?可以將.so文件靜態鏈接到可執行文件嗎?
既然目標文件(ET_REL,* .o)必須有部分,而動態庫(ET_DYN,* .so)同時包含段和段,那麼* so文件可以靜態鏈接,即使它旨在用於動態鏈接?可以將.so文件靜態鏈接到可執行文件嗎?
動態庫(ET_DYN,*。所以)同時具有段和段
動態庫通常有專門的章節,但只是因爲他們沒有被剝奪。有很多動態庫可以做而不是有任何部分(只有分段爲需要供庫工作)。
* * so文件可以靜態鏈接,即使它旨在用於動態鏈接?
號大多數UNIX接頭考慮a.out
和foo.so
是最終 Link產品,沒有提供任何進一步的修改。
包括foo.so
到a.out
在理論上是可行的,但在實踐中很難。
考慮這樣的情況foo.so
定義和導出功能foo
和bar
,而且foo
電話bar
。假設有可能將foo.so
鏈接到a.out
中,其具有與bar
不同的定義。
在這種情況下會發生什麼?多重定義錯誤? foo
致電bar
裏面foo.so
? foo
撥打bar
裏面a.out
?還有別的嗎?所有上述替代方案都需要連接器變得比現在複雜得多,而且已經足夠複雜了。