[英]linking to multiple versions of a static library
我的項目鏈接到靜態庫libA.a版本1。
此可執行文件還鏈接到另一個靜態庫B. B鏈接到A,但版本2。
A的版本1和2中的兩個符號集都是相同的。 如果我知道在我的項目和B之間沒有任何東西與A有任何關系,這應該可行嗎?
我設法手動鏈接它似乎工作(也許有我不知道的陷阱)。
我不能使lib B成為共享對象,或者使用A作為共享對象。 實際上,我只知道B正在靜態使用A,因為我和寫過B的人談過。
關於問題的“鏈接”部分,實際上靜態庫沒有鏈接在一起。 僅執行鏈接步驟以獲得最終可執行文件。
實際上,您使用A(版本2)的標頭編譯了靜態庫B. 然后,您將可執行文件與B和A(版本1)庫鏈接。
只要兩個版本的A中的符號相同,就沒有編譯問題。 但是你必須知道你的可執行文件實際上只嵌入並使用了A的版本1。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.