[英]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.但是它不能那樣工作。
您將C鏈接到A。
由於A是一個動態庫,因此實際上它什么也沒做。
它驗證A在運行時將滿足所有依賴關系。
在運行時,當您dlopen()共享庫C
它將打開C,如果您尚未鏈接到A,則還將打開A
但是由於A已經打開,所以只要打開A就可以解析C中的符號。
我會選擇2。將分辨率留給運行時。 后期綁定是最好的選擇。 我也不知道選項1是可能的:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.