2013-08-16 2 views
1

Я хотел бы иметь обычного пользователя без sudo доступ, компилировать и запускать программу, которая использует libblas и liblapack, и делать это как минимум с двумя версиями этих библиотек (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

Смежные вопросы