ubuntu - 以普通用户身份选择替代库

标签 ubuntu compilation linker libraries

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

有没有办法让我以普通用户的身份选择库?编译是在命令行中使用 -lblas -llapack,也许我可以添加完整路径或其他内容?

最佳答案

Is there a way I could choose the libraries as a normal user?

是的。在这两个包上使用 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/ 以外的地方,您可能需要调整上面的命令。

关于ubuntu - 以普通用户身份选择替代库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18282622/

相关文章:

python - 如何在 Ubuntu 上配置支持 SSL 的 pymssql?

java - 调试 Java 代码时如何使用 Scanner 类对象设置变量的值?

java on osx - xmx 被忽略?

regex - 蛋白质编码基因正则表达式

iphone - 为 iPhone 编译 C lib

c - 纳米: how to show object file of a symbol in a shared library?

ubuntu - 哪个 xinput 设置会反转鼠标滚轮的方向?

go - 包源之间的循环依赖

visual-studio-2010 - 如何在 Windows 上为 CUDA 链接库(例如 CUBLAS、CUSPARSE)

linux - 使用 cmake 编译后,执行时未找到库