Common Linking Errors

The below mentioned are common linking errors related to Intel MKL 8.0.

Undefined References Associated with "pthread" Routines such as

In products for Linux* and Mac OS* it is necessary to link to the pthreads library as well by using the -lpthread option. The pthread library is native to Linux* and Intel® MKL makes use of this library to support multi-threading. Depending on what functions you call, you may have to include this at the end of your link line (link order is important) regardless of whether you plan to use more than one thread.

Undefined Reference to `s_copy', `s_cat',`c_sqrt'

It is necessary to add the libg2c.a library to your link command line. In the case of Red Hat* Linux this library is located in the following directory:

The libg2c contains entry points for Fortran run-time functions. If GNU Fortran is used as the link utility all these references are resolved automatically.

Undefined Reference to: __kmpc and omp__ routines

It is necessary to link in the libguide.a library located in the default directory /opt/intel/mkl/lib/[32|64|em64t] when using threading functions.

Intel® MKL 8.0 Link Order Note: Make sure to follow this order when linking with Linux* systems. This is necessary because Linux does not support multi-pass linking:

mkl_<#> -- architecture specific library (e.g. mkl_ia32 / mkl_ipf / mkl_em64t)

The Technical User Notes document contains more information on linking. It can be found in the doc directory of Intel® MKL or on the Intel® MKL website.

Undefined Reference to 'atan' when Using GNU Compiler (gcc)

To resolve the 'atan' reference in the GNU environment you need to add "-lm" to the link line after all Intel® MKL references. This is the libm library.

Unresolved external symbols when compiling and linking CBLAS and BLAS example source code included with Intel MKL: _PrintVector, GetVectorI, PrintVectorI, _PrintVectorC, _MaxValue, _GetVectorI, _GetVectorC

When compiling using the CBLAS and BLAS example source code included with Intel MKL, it is necessary to also compile and link with the common_func.c file that is supplied in the CBLAS and BLAS example files directories.

It is also advisable, when possible, to use the supplied "make" files to build the examples supplied with the Intel MKL product.

Examples source code is located in the mkl/8.0/examples directory. The Windows* default location for this is: C:\Program Files\intel\MKL\8.0\examples



For more complete information about compiler optimizations, see our Optimization Notice.

1 comment

anonymous's picture

Package ID: w_mkl_p_10.1.1.022
Package Contents: Intel(R) Math Kernel Library 10.1 Update 1 for Windows*

I installed this and would like to test the SCALAPAC routines (MPI). As a first step, i'm trying to call the function PDSYEV, but get a linker error
Error 1 error LNK2019: unresolved external symbol _for_write_seq_fmt referenced in function _PXERBLA mkl_scalapack_core.lib(pxerbla.obj)

I have installed the Intel compiler 11.0 (w_cproc_p_11.0.072_ia32.exe) and i am using Microsoft Visual Studio 2008, Windows XP SP2 and trying to compile for 32bit Windows.

Add a Comment

Have a technical question? Visit our forums. Have site or software product issues? Contact support.