我正在一臺沒有root權限的計算機上進行一些C編程。我編譯了一些我正在鏈接的共享庫,但是因爲我無法將這些庫安裝在典型的位置(/usr/local/lib
),所以每次編譯和運行時都必須明確指定庫的位置。編譯時,這意味着將-L
標誌添加到gcc
命令中,但對於程序執行而言,這更令人討厭。我必須在每個會話中將非標準目錄添加到LD_LIBRARY_PATH
,或者我必須將LD_PRELOAD=/path/to/libs
添加到execute命令的開頭。替代LD_PRELOAD或LD_LIBRARY_PATH
有沒有更好的方式在我沒有root權限的機器上執行此操作?
順便說一句,該機器運行的是Red Hat 4.1。
您可以使用'-rpath'或類似選項來硬編碼二進制文件中庫的路徑。 – 2011-03-31 17:22:33
等等.. Red Hat 4.1!?!在這種情況下,您只需將其根目錄並安裝系統範圍的庫... – 2011-03-31 17:23:17