0
也許這是一個愚蠢的問題,但到目前爲止我無法找到它的直接答案。可以在兩個共享對象(.so)之間共享變量嗎? 例如:在一個庫中定義全局變量並在另一個庫中將其聲明爲extern。我的答案是 - 「不」,但我無法解釋爲什麼。在兩個共享對象之間共享變量
也許這是一個愚蠢的問題,但到目前爲止我無法找到它的直接答案。可以在兩個共享對象(.so)之間共享變量嗎? 例如:在一個庫中定義全局變量並在另一個庫中將其聲明爲extern。我的答案是 - 「不」,但我無法解釋爲什麼。在兩個共享對象之間共享變量
是的,當然。
如果無法使用共享庫中定義的符號,則它們將沒有用處。
如果您指的是另一個共享庫中的符號,那麼您的最終可執行文件必須[動態]鏈接到兩者。
爲什麼不呢?從標準C庫考慮舊的'errno'實現。你不應該這樣做(因爲它仍然是一個全局變量),但你可以。 – Hcorg
是的,你可以。問題是任何鏈接到庫的可執行文件都被強制鏈接到另一個,這會創建一個依賴關係(緊密耦合) – Nandu