Python library not loaded @rpath (3) I'm using OS X El Capitan (10.11.4). I just downloaded TensorFlow using the pip install instructions 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
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
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'
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/'
for MKL version 10.*, please refer to '/Library/Frameworks/Intel_MKL.framework/Versions/10.0.x.xxx/'
Macos Dylib Path
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
for instance, /opt/intel/compilers_and_libraries_2017.0.065/mac/compiler/lib
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'
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
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
like dyld: Library not loaded: @rpath/lib[mkl|ipp]_x.dylib
What Is Dyld
Root Cause:
You did not set environment variables of MKL/IPP path or did not link your application to MKL/IPP path.
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
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.
Mac Dyld Library Not Loaded @rpath/libswiftcore.dylib
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
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.