2012-01-27 2 views
1

clapack을 Linux의 cmake 프로젝트에 연결하는 데 어려움을 겪고 있습니다. 도움을 주시면 감사하겠습니다.Clapack을 cmake 프로젝트에 연결 Linux

나는 clapack을 osx의 같은 프로젝트에 성공적으로 빌드하고 연결했는데, 이는이 상황을 특히 좌절하게 만듭니다.

먼저 clapack-3.2.1-cmake를 다운로드하고 프로젝트를 컴파일했습니다. 그런 다음 .a 및 관련 .h 파일을 내 프로젝트의 루트 디렉토리 아래에있는 CLAPACK이라는 디렉토리에 복사했습니다. (libblas.a, libf2c.a, liblapack.a 및 libtmglib.a를 CLAPACK/lib에, blaswrap.h, clapack.h 및 f2c.h를 CLAPACK에)

다음으로 프로젝트의 cmake 파일을 포함하도록 변경했습니다.

INCLUDE_DIRECTORIES(${VMT_PRJ_SOURCE_DIR}/CLAPACK) 
LINK_DIRECTORIES(${VMT_PRJ_SOURCE_DIR}/CLAPACK/lib) 
LINK_LIBRARIES(f2c blas lapack tmglib) 

이 단계는 내 Mac에서하지만 난 어떤 도움이 될 것이

/home/siggik/Development/SFT-9012/CLAPACK/lib/liblapack.a(sgesvd.c.o): In function  `sgesvd_': 
sgesvd.c:(.text+0x456): undefined reference to `s_cat' 
sgesvd.c:(.text+0x1fa4): undefined reference to `s_cat' 
/home/siggik/Development/SFT-9012/CLAPACK/lib/liblapack.a(sormbr.c.o): In function `sormbr_': 
sormbr.c:(.text+0x39f): undefined reference to `s_cat' 
sormbr.c:(.text+0x45c): undefined reference to `s_cat' 
sormbr.c:(.text+0x527): undefined reference to `s_cat' 

과 같이 오류를 연결 점점 오전 clapack 라이브러리를 리눅스 박스에 프로젝트를 전송하고 다시 컴파일시 컴파일 할 수 큰. 감사합니다,

스콧

답변

1

일부 링커가 정적을 링크 할 때 라이브러리가 전달되는 순서에 sentisitive 있습니다. 어쩌면 ClapackConfig.cmake 또는 FindClapack.cmake 같은 일부 CMake 모듈이 - libs와 주문하거나 clapack에 의해 설치된 파일을보고,

또한 OS X의에서 컴파일 명령 줄에서 표정으로

봅니다 재생합니다. 그렇다면 올바른 libs 명령을 얻을 수 있습니다.

+0

올바른 순서대로 처리했다고 생각했지만 적절할 것으로 판단되었습니다. LINK_LIBRARIES (lapack blas tmglib f2c) – Scottfivefour