Undefined refs to VML when linking to MKL...

Undefined refs to VML when linking to MKL...

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

4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

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.

Liraries libmkl_vml_XX.so don`t contains these symbols. You should link your application with libvml.so

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

Leave a Comment

Please sign in to add a comment. Not a member? Join today