Dyld_library_path Alternative Mac

Oct 01, 2015  cristobal commented Oct 1, 2015. In the latest release off OS-X using the DYLDLIBRARYPATH is not possible unless System Integrity Protection (SIP) is disabled. Meaning that setting the DYLDLIBRARYPATH will have no effects on spawned sub shells and therefore using the node client is no longer possible unless one turns off (SIP) as explained here.

Problem :

Build an Intel® MKL program on Mac OS* with Intel® Fortran Compiler,

For example, compilers_and_libraries_2017.0.065,
MKLPATH=/opt/intel/compilers_and_libraries_2017.0.065/mac/mkl/lib
MKLINCLUDE=/opt/intel/compilers_and_libraries_2017.0.065/mac/mkl/include
> ifort main. f -o main -L$(MKLPATH) -I$(MKLINCLUDE) -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lpthread

Dyld_library_path Alternative Mac Free

get compiler warning:
ld64 warning: indirect library libiomp5.dylib could not be loaded: file not found: libiomp5.dylib
Or runtime error:
dyld: Library not loaded: libiomp5.dylib
Referenced from: @rpath/libmkl_intel_thread.dylib
Reason: image not found
Trace/BPT trap
Root Cause :
Since MKL 11.2, the MKL libraries for Mac OS* have been integrated into Intel® C++/Fortran Compiler Professional Edition or Intel® C++/Fortran Composer XE for Mac OS* X. The default path of MKL libraries were changed from
'/opt/intel/Compiler/11.x/0xx/Frameworks/mkl/'
to '/opt/intel/compilers_and_libraries_201*.*.***/mac/mkl'

for MKL version 11.0-11.1, please refer to '/opt/intel/Compiler/11.x/0xx/Frameworks/mkl/'
for MKL version 10.*, please refer to '/Library/Frameworks/Intel_MKL.framework/Versions/10.0.x.xxx/'

At the same time, the default OpenMP libraries (libiomp5.dylib, libiomp5.a) used by MKL are not in <MKL Libraries>/lib directory as in previous versions. They are under the Intel compiler lib directory now.
for instance, /opt/intel/compilers_and_libraries_2017.0.065/mac/compiler/lib

Dyld_library_path Alternative Machine

Mac

If you use openMP in c++ application and build with Intel C++ compiler, please firstly make sure you have enable the option 'ICC Intel® C++ 17.*.***-Language' » 'Process OpenMp Directives'.
IPP is the same, please see the article XCode link error: 'file not found: libiomp5.dylib'

Solution:

For compiler warning:
Please refer to the MKL link line advisor.
the command line could be
>ifort main. f -o main -L$(MKLPATH) -I$(MKLINCLUDE) -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -openmp -lpthread
or
ifort main. f -o main -L$(MKLPATH) -I$(MKLINCLUDE) -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -L/opt/intel/compilers_and_libraries_2017.0.065/mac/compiler/lib -liomp5 -lpthread

Problem:

Get runtime error:
like dyld: Library not loaded: @rpath/lib[mkl|ipp]_x.dylib

Alternative

Root Cause:
You did not set environment variables of MKL/IPP path or did not link your application to MKL/IPP path.

Solution:

Please add the path of lib<product>.dylib in system environment before run binary (The <product> could be 'mkl' or 'ipp'). There are two methods to realize the solution:

  • Run shell script file to set environment variables, for example, setting MKL:
    > /opt/intel/compilers_and_libraries_2017.*.***/mac/mkl/bin/mklvars.sh <ia32|intel64>
  • Or write command to set directly, for example, setting MKL:
    >
    export DYLD_LIBRARY_PATH='/opt/intel/compilers_and_libraries_2017.*.***/mac/mkl/lib:$DYLD_LIBRARY_PATH

In Xcode 7.3.1 Development Environment:
Click solution/application, select 'All' and 'Combined', then find 'Linking', add 'Runpath search path' like following:
/opt/intel/compilers_and_libraries_2017.*.***/mac/mkl/lib
/opt/intel/compilers_and_libraries_2017.*.***/mac/compiler/lib

If after set the MKL library and Compiler library, you still got the error dyld: Library not loaded: @rpath/libimp5.dylib,

please consider the solutions provided inhttps://software.intel.com/en-us/forums/intel-c-compiler/topic/698021

or

adding -Wl,-rpath,@executable_path options to your build command line.

Before this solution, you must make sure you have already use Intel C++/Fortran compiler and set 'Header Search Path' and 'Library Search Path' and 'Other Link Flags'.
Learn more information about linking and compiling Intel MKL in Mac OS*, please see:
Compiling and linking MKL with Xcode*
How to link application against Intel MKL using XCode IDE

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