Ubuntu 以普通用户身份选择其他库

Ubuntu 以普通用户身份选择其他库,ubuntu,compilation,linker,libraries,Ubuntu,Compilation,Linker,Libraries,我希望有一个没有sudo访问权限的普通用户,编译并运行一个使用libblas和liblapack的程序,并使用这些库的至少两个版本(ATLAS和OpenBLAS)执行此操作。使用updatealternations我可以从一个版本切换到另一个版本,但我需要使用sudo 有没有一种方法可以让我作为普通用户选择这些库?编译正在命令行中使用-lblas-llapack,也许我可以添加完整路径或其他什么 有没有一种方法可以让我作为普通用户选择这些库 对。在两个包上使用dpkg-x,将它们提取到单独的目录

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

有没有一种方法可以让我作为普通用户选择这些库?编译正在命令行中使用
-lblas-llapack
,也许我可以添加完整路径或其他什么

有没有一种方法可以让我作为普通用户选择这些库

对。在两个包上使用
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/
中,则可能需要调整上述命令

有没有一种方法可以让我作为普通用户选择这些库

是的。在两个包上使用
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/

中,您可能需要调整上述命令。谢谢。只需在
/usr/lib
中创建指向已安装库目录的链接,并在
-L
-rpath
选项中使用这些链接就可以了。谢谢。只需创建指向alr的链接已经在
/usr/lib
中安装了库目录,并且在
-L
-rpath
选项中使用这些链接似乎是可行的。