Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
6980 Discussions

Undefined refs to VML when linking to MKL...

renormalize
Beginner
938 Views
I'm not a particularly savy linux user, but I have managed to install Intel Fortran, C++, and MKL on my PC's linux partition (Ubuntu 6.0.6). Now I want to use the free Fortran package PROPACK to do singular value decompositions of large sparse matrices. Using the make file included with PROPACK works fine until it tries to compile and link the example programs included with the software:

make[2]: Entering directory `/home/ron/Desktop/PROPACK/double/Examples'
ifort -cm -w95 -assume buffered_io -vec_report0 -O3 -ipo -xN -Vaxlib -o example.LINUX_ICC_IA32.x example.o matvec.o -L/opt/intel/mkl/8.1.1/lib/32 -L.. -L. ../libdpropack_LINUX_ICC_IA32.a ../libdlapack_util_LINUX_ICC_IA32.a -lmkl_p4 -lguide ../libdlapack_util_LINUX_ICC_IA32.a
IPO: performing multi-file optimizations
IPO: generating object file /tmp/ipo_ifort4usUFH.o
/opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to `vsCos'
/opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to `vslDeleteStream'
/opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to `vdSin'
/opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to `viRngUniformBits'
/opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to `vslNewStream'
/opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to `vdCos'
/opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to `vsSin'
make[2]: *** [example.LINUX_ICC_IA32.x] Error 1
make[2]: Leaving directory `/home/ron/Desktop/PROPACK/double/Examples'

I figured out that the above undefined references are functions from the Intel VML/VSL package, so I added -lmkl_vml_p4 after -lmkl_p4 in the above ifort line, but it still generates the same errors.

Any insights or suggestions?

Thanks,
Ron
0 Kudos
3 Replies
Intel_C_Intel
Employee
938 Views
I am getting the same exact errors with the same MKL,

/opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to `vsCos'
/opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to `vslDeleteStream'
/opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to `vdSin'
/opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to `viRngUniformBits'
/opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to `vslNewStream'
/opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to `vdCos'
/opt/intel/mkl/8.1.1/lib/32/libmkl_p4.so: undefined reference to `vsSin'


In my case I am using the Intel C 9.1 as the linker. My code compiles OK with MKL 8.0.1.
0 Kudos
Andrey_G_Intel2
Employee
938 Views
Liraries libmkl_vml_XX.so don`t contains these symbols. You should link your application with libvml.so

0 Kudos
renormalize
Beginner
938 Views
Per the suggetion of the preceding reply, I added -lvml after -lmkl_p4 in the ifort line, and now all the examples link, optimize, and run perfectly. Many thanks to MADagilev!

Ron
0 Kudos
Reply