指定運行時動態庫位置的三種方式

第三種方法測試有效,原文連接:https://blog.csdn.net/gx_1983/article/details/78352457

指定運行時動態庫位置的三種方式

  • 在Linux 中,動態庫的搜索路徑除了默認的搜索路徑外,還可經過三種方法來指定:方法一:在配置文件/etc/ld.so.conf中指定動態庫搜索路徑;方法二:經過環境變量LD_LIBRARY_PATH指定動態庫搜索路徑;方法三:在編譯目標代碼時指定該程序的動態庫搜索路徑。 
    衆所周知,Linux動態庫的默認搜索路徑是/lib和/usr/lib。動態庫被建立後,通常都複製到這兩個目錄中。當程序執行時須要某動態庫,而且該動 態庫還未加載到內存中,則系統會自動到這兩個默認搜索路徑中去查找相應的動態庫文件,而後加載該文件到內存中,這樣程序就能夠使用該動態庫中的函數,以及該動態庫的其它資源了。在Linux 中,動態庫的搜索路徑除了默認的搜索路徑外,還能夠經過如下三種方法來指定。

經過gcc參數指定

  • 經過gcc參數制定以後就不須要配置環境變量和配置文件了。
-Wl,-rpath=${LD_PATH} #-Wl,-rpath=<動態庫所在路徑> g++ ${RPATH} ./opencv_knn.cpp -o knn
  • 1
  • 2

經過設置環境變量

  • 只對當前shell有效,關閉shell或者退出當前用戶則環境變量配置及無效了。
export LD_LIBRARY_PATH=/root/code/opencv/opencv-3.2.0/build/build/lib #LD_LIBRARY_PATH=<動態庫所在位置>
  • 1
  • 2

經過配置文件

修改/etc/ld.so.conf文件。 其文件內容爲: [root@VM_24_16_centos etc]# cat /etc/ld.so.conf include ld.so.conf.d/*.conf [root@VM_24_16_centos etc]# 因此,能夠在文件夾/etc/ld.so.conf.d/中添加本身的文件,例如:建立文件gx.conf, 而後在文件中添加動態庫路徑,例如: /root/code/opencv/opencv-3.2.0/build/build/lib 注意,保存退出以後須要執行命令ldconfig刷新當前緩存。
相關文章
相關標籤/搜索