安裝源碼包inotify啓動失敗 error while loading shared libraries: libinotifytools.so.0: cannot open shared obje

今天安裝源碼包inotify 一切安裝穩當以後啓動失敗,報以下錯誤:操作系統

 

第一感受是找不到這個庫,此時有兩種可能.net

1,操做系統上沒有安裝該庫blog

2,操做系統找不到該庫源碼

首先在/usr路徑下查找該包的名稱,以下圖變量

ps:爲何要在/usr下找呢,由於庫文件通常都安裝在該目錄下。軟件

 

結果只在源碼包的安裝路徑下找到了該庫,證實以源碼包形式安裝該軟件的時候該庫已經被安裝在操做系統中了。引用

這就驗證了上邊的第2項,操做系統找不到該庫的路徑。程序

此時咱們應該想怎麼讓操做系統找到該庫方法

在這以前呢咱們要先知道一點,程序裏面引用庫分爲動態連接庫和靜態連接庫,簡單的理解靜態連接庫就是程序要用的一些類庫直接寫到了該程序裏面,而使用動態連接庫的程序就時程序只是在聲明部分寫入要引用該庫,而沒必要把要引用的類庫都加載到程序裏面,這樣的好處就是程序看起來更簡潔,代碼也少了不少,缺點就是須要操做系統須要其引用的類庫。由此能夠判定上面程序之因此報錯是由於該程序引用的是動態連接庫,可是操做系統裏面沒有這個庫,源碼包卻自帶的這個庫,這時就要讓操做系統知道這個庫所在的路徑就OK了。im

找到緣由以後下面是解決方法:

方法一:
echo "/usr/lib64/mysol" >> /etc/ld.so.conf
ldconfig

ld.so.conf動態連接庫裝載器,操做系統會根據這裏面寫的路徑去找庫。

ldconfig是告訴操做系統要引入新的變量了,須要從新識別一下。

方法二:

export LD_LIBRARY_PATH=/usr/local/inotify/lib:$LD_LIBRARY_PATH 

/usr/local/inotify/lib爲該源碼包要用的庫的路徑,引入該環境變量的時候操做系統就會去找該變量下的類庫。————————————————版權聲明:本文爲CSDN博主「JNeuman」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。原文連接:https://blog.csdn.net/wangxin6722513/article/details/44218893

相關文章
相關標籤/搜索