Hello,
I installed the Intel Math Kernel Library 9.0 for Linux on my "AMD Turion 64" and then compiled the f95 wrappers for LAPACK in mkl/9.0/interfaces/lapack95 with "make PLAT=lnx32e lib".
I can compile and link my files fine with:
$(MKL_LIB_LAPACK95)/libmkl_lapack95.a -L$(MKL_LIB_ROOT)/ -lmkl_lapack -lmkl_em64t -lguide -lpthread
and the .bashrc file includes:
export MKL_LIB_ROOT=/opt/intel/mkl/9.0/lib/em64t
export MKL_LIB_LAPACK95=/opt/intel/mkl/9.0/interfaces/lapack95
but when I execute, it says:
: error while loading shared libraries: libguide.so: wrong ELF class: ELFCLASS32
What is wrong? Thanks for help!
Joe
I installed the Intel Math Kernel Library 9.0 for Linux on my "AMD Turion 64" and then compiled the f95 wrappers for LAPACK in mkl/9.0/interfaces/lapack95 with "make PLAT=lnx32e lib".
I can compile and link my files fine with:
$(MKL_LIB_LAPACK95)/libmkl_lapack95.a -L$(MKL_LIB_ROOT)/ -lmkl_lapack -lmkl_em64t -lguide -lpthread
and the .bashrc file includes:
export MKL_LIB_ROOT=/opt/intel/mkl/9.0/lib/em64t
export MKL_LIB_LAPACK95=/opt/intel/mkl/9.0/interfaces/lapack95
but when I execute, it says:
: error while loading shared libraries: libguide.so: wrong ELF class: ELFCLASS32
What is wrong? Thanks for help!
Joe
链接已复制
5 回复数
I believe you must make sure when you execute that LD_LIBRARY_PATH is set to point to the same library directory where libguide.so was found when you linked. I am hedging bets a little because you didn't say which compiler you used, but it looks as if you linked against the libguide in your MKL installation.
If you use an Intel compiler which is no older than your MKL version, it is preferable to make sure that the libguide in use at both link and run time is the one supplied with the compiler. The Intel compiler option -openmp would take care of both -lguide and -lpthread.
If you want to avoid the requirement for LD_LIBRARY_PATH at run time, you could use the option to make all Intel compiler libraries static (-i-static for 9.1 compilers).
If you use an Intel compiler which is no older than your MKL version, it is preferable to make sure that the libguide in use at both link and run time is the one supplied with the compiler. The Intel compiler option -openmp would take care of both -lguide and -lpthread.
If you want to avoid the requirement for LD_LIBRARY_PATH at run time, you could use the option to make all Intel compiler libraries static (-i-static for 9.1 compilers).