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


第三種方法測試有效,原文鏈接: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刷新當前緩存。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM