2013-04-10 1 views
3

거대한 소프트웨어 패키지를 컴파일하려고하는데, 이것이 내가 알 수없는 마지막 장애물입니다.Intel의 MKL (BLAS & LAPACK)을 GCC에 연결

내가 좋아하는 오류를 받고 있어요 :

RNDiracDeterminantBase.cpp:(.text+0x22bf): undefined reference to `dgetrf_' 
RNDiracDeterminantBase.cpp:(.text+0x2524): undefined reference to `dgetri_' 
RNDiracDeterminantBase.cpp:(.text+0x3005): undefined reference to `dgetri_' 
../../lib/libqmcwfs.a(RNDiracDeterminantBase.cpp.o): In function `qmcplusplus::RNDiracDeterminantBase::ratio(qmcplusplus::ParticleSet&, int, qmcplusplus::ParticleAttrib<qmcplusplus::TinyVector<double, 3u> >&, qmcplusplus::ParticleAttrib<double>&)': 
RNDiracDeterminantBase.cpp:(.text+0x4156): undefined reference to `dgemv_' 
RNDiracDeterminantBase.cpp:(.text+0x420f): undefined reference to `dger_' 

구글은 이러한 참조는 인텔 MKL 라이브러리에 있음을 알 수있다. 그러나 어떤 파일을 링크해야하는지 모르겠습니다. 요청이있을 경우 자세한 내용을 게시 할 수

/MKL/lib 디렉토리/intel64/

: 나는에있는 파일의 톤이있다 등 libmkl_core.a, libmkl_gnu_thread.a, libmkl_blacs_intelmpi_lp64.a을 시도했습니다.

+1

귀하의 질문에 * 광고 *하지 마십시오. – meagar

+0

그러면 내 질문에 대한 답변을 드릴 수 있습니까? – Nick

+0

당신이 사라진 것처럼 보이기 때문에, 나는 제목을 다시 바꿀 것입니다. 돌아온다면 언제든지 다시 편집하십시오. – Nick

답변

8

링크해야 할 파일이 무엇인지 알 수 없습니다. 나는 등, libmkl_core.a, libmkl_gnu_thread.a, libmkl_blacs_intelmpi_lp64.a을 시도했습니다에있는 파일의 톤이있다 : /mkl/lib/intel64/

당신이 각 라이브러리를 시도해야 할 파일의 톤이 의미하는 것은 아니다 있다는 사실 회전.

는 라이브러리가 원하는 기호를 정의하는 알이 명령을 실행하려면 다음 명령에 대한 아카이브 라이브러리의 순서로, 또한

cd /mkl/lib/intel64 
nm -A *.a | egrep '[TWBD] (dger_|dgemv_|dgetrf_|dgetri_)$' 

당신의 연결 라인의 에서 라이브러리를 넣어 확인을 line matters.

4

제공 한 불완전한 정보에 따르면 libmkl_intel_lp64.a, libmkl_gnu_thread.a 및 libmkl_core.a가 필요할 수 있습니다.

인텔 MKL에는/mkl/tools/mkl_link_tool을 연결하는 데 도움이되는 도구가 내장되어 있습니다. 이 도구는 웹 (http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor)에서도 사용할 수 있습니다. 이 도구를 사용하면 상황에 맞는 정확한 링크를 얻을 수 있습니다.

공식 MKL 포럼 (http://software.intel.com/en-us/forums/intel-math-kernel-library)에서 질문해야합니다. 이런 유형의 질문에 대한 답은 며칠이 아니라 몇 시간 안에 얻을 것입니다.

1

Windows에서 mingw를 설정할 때 비슷한 문제가있었습니다.

다음 라이브러리 링크 순서

는 GCC와 나를 위해 일한 :

  1. mkl_intel_thread
  2. mkl_rt는이 문제에 붙어 사람을 도움이
  3. mkl_core
  4. mkl_intel_lp64

희망을.