2013-08-16 19 views
1

我想有一個普通用戶,沒有sudo訪問,編譯和運行一個程序,使用libblasliblapack,並至少有兩個版本的這些庫(ATLAS和OpenBLAS )。用update-alternatives我可以從一個版本切換到另一個版本,但我需要使用sudo選擇替代庫作爲普通用戶

有沒有一種方法可以選擇這些庫作爲普通用戶?編譯在命令行中使用-lblas -llapack,也許我可以添加完整路徑或其他東西?

回答

1

有沒有一種方法可以選擇這些庫作爲普通用戶?

是的。在這兩個包上使用dpkg -x以將它們提取到單獨的目錄中,例如,

mkdir ~/ATLAS; cd ~/ATLAS; dpkg -x /path/to/atlas-package.deb 
mkdir ~/OpenBLAS; cd ~/OpenBLAS; dpkg -x /path/to/openblas-package.deb 

現在,您可以將自己的程序中使用一個或另一個:

gcc main.o -o use-atlas -lblas -llapack -L $HOME/ATLAS/lib -Wl,-rpath=$HOME/ATLAS/lib 
gcc main.o -o use-openblas -lblas -llapack -L $HOME/OpenBLAS/lib -Wl,-rpath=$HOME/OpenBLAS/lib 

(你可能需要調整上述命令,如果庫安裝到除/lib/其他東西

+0

。謝謝。只需在'/ usr/lib'中創建已經安裝的庫目錄的鏈接,並在'-L'和'-rpath'選項中使用這些鏈接似乎可以工作。 – Jellby