# MKL 64lp versus 64ilp difficulties

**URL:** https://discourse.cmake.org/t/mkl-64lp-versus-64ilp-difficulties/1223
**Category:** Usage
**Tags:** os:macos
**Created:** [May 15, 2020, 10:01am UTC](https://discourse.cmake.org/t/mkl-64lp-versus-64ilp-difficulties/1223 "2020-05-15T10:01:46Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![spinicist](https://discourse.cmake.org/user_avatar/discourse.cmake.org/spinicist/32/605_2.png) [@spinicist](https://discourse.cmake.org/u/spinicist)
#### Post date: [May 15, 2020, 10:01am UTC](https://discourse.cmake.org/t/mkl-64lp-versus-64ilp-difficulties/1223/1 "2020-05-15T10:01:47Z")

</div>

Hello,

I’ve been having difficulty with using Eigen and the Intel MKL backend in my project. My CMake version is 3.15.2. For the full details, see here: [https://gitlab.com/libeigen/eigen/-/issues/1890](https://gitlab.com/libeigen/eigen/-/issues/1890)

The summary version is that the linking flags from

```auto
set(BLA_VENDOR Intel10_64lp)
find_package(BLAS)

```

appear to be incorrect. When using them, when I start my programs I receive this error:

```auto
dyld: Symbol not found: _mkl_blas_caxpy
  Referenced from: /opt/intel/compilers_and_libraries_2019.4.233/mac/mkl/lib/libmkl_intel_lp64.dylib
  Expected in: flat namespace
 in /opt/intel/compilers_and_libraries_2019.4.233/mac/mkl/lib/libmkl_intel_lp64.dylib

```

Using Intel’s tool at [https://software.intel.com/content/www/us/en/develop/articles/intel-mkl-link-line-advisor.html](https://software.intel.com/content/www/us/en/develop/articles/intel-mkl-link-line-advisor.html) I tried specifying the compile flags manually with:

```auto
    target_compile_options(${TGT} PRIVATE -m64 -I${MKLROOT}/include)
    target_link_options(${TGT} PRIVATE -L$ENV{MKLROOT}/lib -Wl,-rpath,${MKLROOT}/lib -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm -ldl)

```

And my programs now run correctly. Please note that the `64ilp` interface found by CMake works correctly, it is only the `64lp` that appears to be incorrect. Eigen requires the `64lp` interface to be used.

Is this an error with the `find_package(BLAS)` or something that I’m doing?

Thanks in advance.
