我希望有一个普通用户,没有sudo
访问权限,编译并运行使用libblas
和liblapack
的程序,并且至少使用这两个版本执行此操作图书馆(ATLAS和OpenBLAS)。使用update-alternatives
我可以从一个版本切换到另一个版本,但我需要使用sudo
。
有没有办法可以选择库作为普通用户?编译在命令行中使用-lblas -llapack
,也许我可以添加完整路径或什么?
答案 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/
以外的其他位置,则可能需要调整上面的命令。