【環境管理】linux 庫路徑的管理

庫文檔在連接(靜態庫和共享庫)和運行(僅限於使用共享庫的程式)時被使用,其搜索路徑是在系統中進行配置的。一般 Linux 系統把 /lib 和 /usr/lib 兩個目錄作爲默認的庫搜索路徑,所以使用這兩個目錄中的庫時無需進行配置搜索路徑即可直接使用。對於處於默認庫搜索路徑之外的庫,需要將庫的位置添加到庫的搜索路徑之中。

LD_LIBRARY_PATH

LD_LIBRARY_PATH是Linux環境變量名,該環境變量主要用於指定查找共享庫(動態鏈接庫)時除了默認路徑之外的其他路徑。

  • 調用條件:當執行函數動態鏈接.so時,如果此文件不在缺省目錄下‘/lib’ and ‘/usr/lib’,那麼就需要指定環境變量LD_LIBRARY_PATH
  • 語法規則:假如需要在已有的環境變量上添加新的路徑名,則採用如下方式:LD_LIBRARY_PATH=NEWDIRS:$LD_LIBRARY_PATH.(newdirs是新的路徑串)
  • 一次性設置:在linux終端下輸入:export LD_LIBRARY_PATH=/opt/au1200_rm/build_tools/bin: $LD_LIBRARY_PATH: (重啓就會失效)
  • 永久設置:打開vim /etc/bashrc進行添加
  • 與LIBRARY_PATH的區別LIBRARY_PATH is used by gcc before compilation to search for directories containing libraries that need to be linked to your program;LD_LIBRARY_PATH is used by your program to search for directories containing the libraries after it has been successfully compiled and linked.

虛擬環境中運行python包出現Permission denied解決方案

先交代一下環境,主環境是python3.5.2,虛擬環境是3.6.3,樓主在虛擬環境中運行涉及到cuda的程序時,遇到了cuda的庫Permission denied的情況,這時候用sudo的話會直接切到主環境python3.5.2,我們sudo加上虛擬環境的python解釋器的位置就可以。
舉個例子:sudo ~/anaconda3/envs/python36/bin/python demo.py~/anaconda3/envs/python36/bin/python是虛擬環境python解釋器的位置,後面就是你要在虛擬環境裏面運行的程序)其實是和我們平時運行程序是一樣的,只不過我們換個解釋器而已~

部分文字出處:
https://blog.csdn.net/maotianwang/article/details/44619197

發佈了35 篇原創文章 · 獲贊 26 · 訪問量 8499
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章