[英]LD_LIBRARY_PATH
我可以為單個應用程序設置LD_LIBRARY_PATH嗎? 我正在調查系統調用失敗,所以有什么方法可以設置使用LD_LIBRARY_PATH設置設置正確的路徑?
最簡單的方法是創建一個shell腳本。
讓shell腳本導出新的LD_LIBRARY_PATH變量,然后啟動您的應用程序
例如(其中foo是你的應用)
#!/bin/sh
LD_LIBRARY_PATH=some_path:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
foo
很簡單:
LD_LIBRARY_PATH=new_path:$LD_LIBRARY_PATH foo
這在bash中有效。 我認為它適用於所有bourne shell衍生產品,但我無法保證。
當然,使用這種方法,您每次都必須鍵入路徑。 要反復這樣做,更喜歡Glen的方法 。
需要注意的一個問題是:您無法在程序中設置LD_LIBRARY_PATH
並使其對當前程序產生任何影響。 這是因為動態加載程序( ld.so.1
或類似的名稱)已經加載,並且在運行任何代碼之前已經讀取並處理了環境變量。 您可以在當前進程的環境中設置它,然后該值將影響任何子進程,並且您可以使用exec()
系列函數之一來運行具有環境集的程序。 在極端情況下,您可以重新執行當前程序 - 但這是極端的 !
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.