2013-08-16 15 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