Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

how to link the MKL

guayigou
Beginner
1,621 Views
My all .f90 has been maked without any errors,but there are something wrong with making driver
why?
Thank you very much

guayigou@guayigou-laptop:~/work/atfem/SRC$ make driver
mpif90 -o atfem30_Linux main.o ../LIB/ATFEM.a /home/guayigou/work/atfem/MUMPS/MUMPS_4.8.1/lib//libdmumps.a /home/guayigou/work/atfem/MUMPS/MUMPS_4.8.1/lib//libmumps_common.a /opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_scalapack_lp64.a /opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_blacs_lp64.a /home/guayigou/work/atfem/MUMPS/MUMPS_4.8.1/PORD/lib/libpord.a -I/opt/intel/Compiler/11.1/059/mkl/include /opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_blas95_lp64.a /opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_lapack95_lp64.a /opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a /opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_solver_lp64.a /opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_core.a /opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_blacs_lp64.a /opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_scalapack_lp64.a -lpthread -lm
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dpotrf_lp64.o): In function `dpotrf_':
_dpotrf_lp64.c:(.text+0x32): undefined reference to `mkl_serv_setxer'
_dpotrf_lp64.c:(.text+0x41): undefined reference to `mkl_serv_set_progress'
_dpotrf_lp64.c:(.text+0x5d): undefined reference to `mkl_lapack_dpotrf'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dtrmv_lp64.o): In function `dtrmv_':
_dtrmv_lp64.c:(.text+0xd6): undefined reference to `mkl_blas_dtrmv'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dsyr2_lp64.o): In function `dsyr2_':
_dsyr2_lp64.c:(.text+0xae): undefined reference to `mkl_blas_dsyr2'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dsyr_lp64.o): In function `dsyr_':
_dsyr_lp64.c:(.text+0x89): undefined reference to `mkl_blas_dsyr'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dsymv_lp64.o): In function `dsymv_':
_dsymv_lp64.c:(.text+0xe4): undefined reference to `mkl_blas_dsymv'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dswap_lp64.o): In function `dswap_':
_dswap_lp64.c:(.text+0x2a): undefined reference to `mkl_blas_dswap'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dgemv_lp64.o): In function `dgemv_':
_dgemv_lp64.c:(.text+0xd5): undefined reference to `mkl_blas_dgemv'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_ddot_lp64.o): In function `ddot_':
_ddot_lp64.c:(.text+0x2a): undefined reference to `mkl_blas_ddot'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dcopy_lp64.o): In function `dcopy_':
_dcopy_lp64.c:(.text+0x2a): undefined reference to `mkl_blas_dcopy'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_daxpy_lp64.o): In function `daxpy_':
_daxpy_lp64.c:(.text+0x2a): undefined reference to `mkl_blas_daxpy'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dtrsm_lp64.o): In function `dtrsm_':
_dtrsm_lp64.c:(.text+0xe4): undefined reference to `mkl_blas_dtrsm'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dtrmm_lp64.o): In function `dtrmm_':
_dtrmm_lp64.c:(.text+0xe4): undefined reference to `mkl_blas_dtrmm'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dsyrk_lp64.o): In function `dsyrk_':
_dsyrk_lp64.c:(.text+0xa8): undefined reference to `mkl_blas_dsyrk'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dsyr2k_lp64.o): In function `dsyr2k_':
_dsyr2k_lp64.c:(.text+0xd7): undefined reference to `mkl_blas_dsyr2k'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dsymm_lp64.o): In function `dsymm_':
_dsymm_lp64.c:(.text+0xd7): undefined reference to `mkl_blas_dsymm'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_dgemm_lp64.o): In function `dgemm_':
_dgemm_lp64.c:(.text+0x123): undefined reference to `mkl_blas_dgemm'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_misc_mkl_xerbla_iface_u.o): In function `XERBLA':
../../../../serv/iface/_misc_mkl_xerbla_iface_u.c:(.text+0x2): undefined reference to `mkl_serv_default_xerbla'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_intel_lp64.a(_misc_mkl_progress_iface_u.o): In function `MKL_PROGRESS':
../../../../serv/iface/_misc_mkl_progress_iface_u.c:(.text+0x2): undefined reference to `mkl_serv_default_progress'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_core.a(_avx_dtrsv.o): In function `mkl_blas_avx_dtrsv':
../../../../blas/kernel/avx/level2/32e/dtrsv.f:(.text+0x313): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/avx/level2/32e/dtrsv.f:(.text+0x456): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/avx/level2/32e/dtrsv.f:(.text+0x601): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/avx/level2/32e/dtrsv.f:(.text+0x7f5): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/avx/level2/32e/dtrsv.f:(.text+0x99a): undefined reference to `mkl_blas_dgemv'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_core.a(_avx_dtrsv.o):../../../../blas/kernel/avx/level2/32e/dtrsv.f:(.text+0xb07): more undefined references to `mkl_blas_dgemv' follow
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_core.a(_def_dger.o): In function `mkl_blas_def_dger':
../../../../blas/kernel/def/level2/32e/dger.f:(.text+0x122): undefined reference to `mkl_blas_daxpy'
../../../../blas/kernel/def/level2/32e/dger.f:(.text+0x18e): undefined reference to `mkl_blas_daxpy'
../../../../blas/kernel/def/level2/32e/dger.f:(.text+0x229): undefined reference to `mkl_blas_daxpy'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_core.a(_p4n_dtrsv.o): In function `mkl_blas_p4n_dtrsv':
../../../../blas/kernel/p4n/level2/32e/dtrsv.f:(.text+0x313): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/p4n/level2/32e/dtrsv.f:(.text+0x456): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/p4n/level2/32e/dtrsv.f:(.text+0x601): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/p4n/level2/32e/dtrsv.f:(.text+0x7f5): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/p4n/level2/32e/dtrsv.f:(.text+0x99a): undefined reference to `mkl_blas_dgemv'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_core.a(_p4n_dtrsv.o):../../../../blas/kernel/p4n/level2/32e/dtrsv.f:(.text+0xb07): more undefined references to `mkl_blas_dgemv' follow
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_core.a(_p4n_dger.o): In function `mkl_blas_p4n_dger':
../../../../blas/kernel/p4n/level2/32e/dger.f:(.text+0x120): undefined reference to `mkl_blas_daxpy'
../../../../blas/kernel/p4n/level2/32e/dger.f:(.text+0x18b): undefined reference to `mkl_blas_daxpy'
../../../../blas/kernel/p4n/level2/32e/dger.f:(.text+0x225): undefined reference to `mkl_blas_daxpy'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_core.a(_mc_dtrsv.o): In function `mkl_blas_mc_dtrsv':
../../../../blas/kernel/mc/level2/32e/dtrsv.f:(.text+0x313): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/mc/level2/32e/dtrsv.f:(.text+0x456): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/mc/level2/32e/dtrsv.f:(.text+0x601): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/mc/level2/32e/dtrsv.f:(.text+0x7f5): undefined reference to `mkl_blas_dgemv'
../../../../blas/kernel/mc/level2/32e/dtrsv.f:(.text+0x99a): undefined reference to `mkl_blas_dgemv'
/opt/intel/Compiler/11.1/059/mkl/lib/em64t/libmkl_core.a(_mc_dtrsv.o):../../../../blas/kernel/mc/level2/32e/dtrsv.f:(.text+0xb07): more undefined references to `mkl_blas_dgemv' follow
make: *** [driver] 1
guayigou@guayigou-laptop:~/work/atfem/SRC$
0 Kudos
2 Replies
TimP
Honored Contributor III
1,621 Views
When linking with the MKL .a files, certain of them must be enclosed by -Wl,--begin-group ..... -Wl,--end-group directives, so as to satisfy the circular dependencies. The link advisor, on the right hand column of the forum header page, should show you this. At least the lp64, core, and thread libraries must be grouped. In such a complicated case, it may be easier to start out with a shared library link, so as to reduce initial complexity.
0 Kudos
Vladimir_Koldakov__I
New Contributor III
1,621 Views

There is also "Intel Math Kernel Library Link Line Advisor". Onecan find the link on the main MKL Forum page, right column, under the "New Intel MKL KB topics" title.

Thanks,

Vladimir

0 Kudos
Reply