2015-04-23 48 views
1

我嘗試編譯庫「一個」我的機器上, &我有「C」 &「d」可選的一個在標準路徑安裝,以及依賴作爲本地/自定義路徑,與標準路徑的庫(-O0)相比,自定義路徑中的庫(-O3)更加優化。獲取在圖書館使用的庫列表

我使用LDFLAGS(-L)和LIBS(-l)通過提供本地庫的路徑來編譯庫「A」。並生成庫(libA.so或libA.a)!

ldd是一個工具,它可以告訴哪些庫鏈接了可執行文件

  • 是有一個等效的工具,它可以告訴哪個文庫針對(即LDD libscalapack.a)連接的?
  • 有沒有辦法確保在創建庫A(libA.so/libA.a)時使用可選庫 庫?
  • 有沒有辦法可以確定在編譯時使用哪個庫的標準&本地 ?

熱切期待等待您的回覆。

回答

0

告訴你的鏈接器你想要一個加載映射(如果你使用的是gcc,則爲-Wl,-Map -Wl,mapfile)。這將告訴你哪些庫已經在鏈接階段使用過。

在共享庫的情況下,這並不一定意味着程序執行期間將使用完全相同的庫,這取決於動態加載程序的配置。