1
我有一個使用libtool構建的庫,它安裝在包的庫目錄/usr/local/lib/myprog/libmylib.so
中。我用libltdl動態加載我的代碼庫。當我嘗試在一臺機器上加載這個庫時,它工作得很好。另一方面,如果在同一位置安裝了相同的版本和庫,則會出現「文件未找到」錯誤。當文件位於正確路徑時,dlopen失敗,找不到文件
如果我在lt_dlopenext
(我用來加載庫)之前直接調用lt_dlforeachfile
,那麼通過打印文件名可以看到我需要的庫已經在搜索路徑中找到。但之後立即加載失敗,出現「文件未找到」錯誤。有什麼建議麼?
UPDATE
我曾嘗試切換到使用dlopen
,並明確指明瞭該庫的絕對路徑。這仍然適用於某些系統,而不適用於其他系統。
調試這種錯誤的另一種方法是給出[這裏](http://stackoverflow.com/a/9567335/1043187)。 – BenC 2015-04-13 04:12:56