2012-11-18 3 views
6

전체 ATLAS 설치 설명서를 읽었으며 공유 (.so) 라이브러리를 빌드하는 데 필요한 것은 --shared 플래그를 configure 스크립트에 전달하는 것입니다. 이 라이브러리가 있기 때문에 일부 테스트가 실패 설치 후ATLAS에서 공유 라이브러리 구성

libatlas.so, libcblas.so, libf77blas.so, liblapack.so, libptcblas.so, libptf77blas.so 

: 내가 빌드 할 때 가이드가 여섯 다른 사람이해야한다고 말한다 불구하고 그러나, 내 lib 폴더에 나타납니다 유일한 .so 파일은 libsatlas.solibtatlas.so 있습니다 있어야 할 곳에 없는. 또한 FFPACK은 설치 중에 이러한 라이브러리를 원합니다.

누구에게이 문제가 발생 했습니까? 내가 뭘 잘못하고 있니?

+0

--shared 플래그를 configure 스크립트에 전달하는 방법은 무엇입니까? –

답변

5

내 경험에 비추어 볼 때, 훨씬 복잡합니다. EasyBuild 구현 인 ATLAS 빌드 절차는 https://github.com/hpcugent/easybuild-easyblocks/blob/master/easybuild/easyblocks/a/atlas.py입니다.

  • 가 -fPIC 컴파일러 옵션을
  • 실행 가능 '하게 공유 cptshared ptshared cshared'는 'LIB'디렉토리에

우리는 심지어 사용하지 않는 - :

우리는에 필요 구성을 위해 공유되었으므로 아마 많은 일을하지 않을 것입니다.

두통이없는 ATLAS (그리고이 파일을 연결할 때마다)를 만들려면 EasyBuild를 살펴보십시오.

(면책 조항 : 나는 EasyBuild에 대한 개발자입니다)

+0

-fPIC 컴파일러 옵션을 활성화하는 방법은 무엇입니까? –

+0

@ 郭 同 jet_ 专心 참조 https://github.com/hpcugent/easybuild-easyblocks/blob/c2a9fe50fcdb77708f47eb1edfa378a8a848808d/easybuild/easyblocks/a/atlas.py#L123 기본적으로, 당신은 -fa ALG''와 ATLAS를 구성 -fPIC'' –

0

First if you have incorrectly specified the --force-tids flag for configure then the parallel libs won't build. To check this you can run make ptcheck. 이 플래그의 사양에 관한 질문이 있습니다 here

그런 다음 결과로 나온 ATLAS Makefile을 검사하면 "atlas가 하나의 lib에 빌드 된 경우에만"실제로 두 개의 "fat"라이브러리 만 생성됩니다 : libsatlas. 그래서 libtatlas.so.

FFPACK을 해당 libs에 링크하거나 필요한 ATLAS Makefile을 변경하여 (필요한 경우 정적 라이브러리를 사용할 수 없기 때문에) 필요한 대상을 포함 할 수 있습니다.

0

.so.3 파일에 대한 링크를 수동으로 만들어야했습니다. 그래서 버전이 지정된 라이브러리 파일은 존재하지만, cmake가 찾고 있던 파일은 존재하지 않습니다.

실행

sudo ln -s libatlas.so.3 libatlas.so 
sudo ln -s libcblas.so.3 libcblas.so 
sudo ln -s liblapack_atlas.so.3 

(필자는 cblas, 아틀라스 또는 LAPACK을 구축하지만 링크가 자동으로 생성되지 않은 이유를 궁금해. apt-get을로를 설치하지 않았다).