2013-08-16 2 views
1

일반 사용자가 sudo에 액세스하고, libblas 및을 사용하는 프로그램을 컴파일하고 실행하고이 라이브러리 (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

관련 문제