簡體   English   中英

將共享庫與其他共享庫鏈接是否很好?

[英]Is it good to link a shared library against other shared libraries?

我有一個使用共享庫A,B和C的應用程序X。共享庫C還使用了共享庫A中的一些符號。應用程序X在編譯時與A和B鏈接,並且它在運行時執行dlopen加載C。

我的問題是:

在鏈接期間將C鏈接到A還是將符號解析留給運行時是個好主意?

您的選擇1.但是它不能那樣工作。

  1. 您將C鏈接到A。
    由於A是一個動態庫,因此實際上它什么也沒做。
    它驗證A在運行時將滿足所有依賴關系。

  2. 在運行時,當您dlopen()共享庫C
    它將打開C,如果您尚未鏈接到A,則還將打開A
    但是由於A已經打開,所以只要打開A就可以解析C中的符號。

我會選擇2。將分辨率留給運行時。 后期綁定是最好的選擇。 我也不知道選項1是可能的:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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