选择替代库作为普通用户

时间:2013-08-16 21:49:07

标签: ubuntu compilation linker libraries

我希望有一个普通用户,没有sudo访问权限,编译并运行使用libblasliblapack的程序,并且至少使用这两个版本执行此操作图书馆(ATLAS和OpenBLAS)。使用update-alternatives我可以从一个版本切换到另一个版本,但我需要使用sudo

有没有办法可以选择库作为普通用户?编译在命令行中使用-lblas -llapack,也许我可以添加完整路径或什么?

1 个答案:

答案 0 :(得分: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/以外的其他位置,则可能需要调整上面的命令。