2012-06-05 117 views
5

我正在創建一個共享對象庫,它將與我的程序一起LD_PRELOADed。在那個共享庫中,我也想從我的程序中使用一些變量。聲明這些變量的方式是什麼?請注意,共享對象庫是與我的程序分開編譯的。如何在共享對象庫中共享變量

回答

2

是的。您必須將程序與--export-dynamic關聯起來,才能使打開庫的程序的符號表可用。如果您希望準確控制哪些符號可用並使用libtool進行鏈接,則可以使用參數-export-symbols-regex來指定哪些符號可用。如果程序加載時庫所需的符號不可用,則它將失敗並顯示未定義的符號。有些平臺需要稍微不同的鏈接標誌(特別是Windows)。如果您尚未使用libtool,請考慮使其更容易。