簡體   English   中英

linux上的共享庫問題

[英]shared library problems on linux

我正在嘗試在linux系統上編譯/鏈接一個非常舊的軟件,但由於某種原因我無法鏈接到我系統上安裝的共享庫。

我從鏈接器收到以下錯誤:

/usr/bin/ld: cannot find -lXaw

但是,lib本身已安裝。 如果我跑

ldconfig -v | grep libXaw

我得到(除此之外)這個命中:

libXaw.so.7 -> libXaw7.so.7.0.0

庫及其鏈接位於/ usr / lib btw中。 沒什么特別的。

所以庫在那里,ldconfig找到它。 什么可能導致ld在鏈接時沒有找到庫? 你可能已經猜到我對共享庫的東西很新。

有任何想法嗎?

從字面上看,鏈接器可能正在查找“libXaw.so”。 是在/ usr / lib中嗎? 如果沒有,您可以嘗試將其添加為libXaw7.so.7.0.0中的另一個軟鏈接。

符號鏈接btw的原因是在多個版本的情況下選擇要鏈接的默認版本,請記住庫的名稱已集成到二進制文件中。 (你可以用ldd看到)。

-L庫目錄是否被覆蓋,並且它沒有在/ usr / lib中查找?

要鏈接它,您需要.a文件,而不是.so文件,它是運行時庫。 共享對象僅對已經鏈接到庫的非共享部分的程序有用。 這通常分布在“.a”文件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM