Problem :
(and everything else the same) This means that I cannot run the resulting binary without explicitly setting DYLDLIBRARYPATH which is bad. There is a workaround, so I can live with that, but this should probably be fixed. (However I still don't know how to use the Qt user interface with cmake.). 'cmake on Mac OS X and DYLDLIBRARYPATH (bug.
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
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
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
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
Mac Dyld Library Not Loaded
Mac Dyld Shared Cache
I am using g++ 3.3 on os X 10.3.9. I have created my own library
using
ar ruv *.o files
After this I try to compile a test program using,
g++ -pg -O -Wno-deprecated -ansi -pedantic -o test test.C
-DANSI_HEADERS -D_G_HAVE_BOOL -I. -I/ALLINCLUDEDIRS -lmylib -llpsolve51
-lm -L.
And the compilation works fine.
But when i try to run the executable ./test, I get the following error
message:
dyld: ./test_grid can't open library: liblpsolve51.dylib (No such file
or directory, errno = 2)
Trace/BPT trap
The library liblpsolve.dylib is NOT located in the current directory. I tried checking the value of LD_LIBRARY_PATH using echo$LD_LIBRARY_PATH, but nothing showed up.
It seems that LD_LIBRARY_PATH is not set, and moreover I am not even sure if it is used on darwin? On posting to a newsgroup, I was told that I need DYLD_LIBRARY_PATH instead. On doing echo $DYLD_LIBRARY_PATH I do not see any paths. Isn't a default value set for them already?
How can I resolve this problem?
thanks,
amit.