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

compile errors using vsldConvExec1D()

recrusader
Beginner
986 Views
When I use vsldConvExec1D(), I compile the codes. I get the following errors:

/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_core.a(vsl_ex_ccfft_all_conv_de.o): In function `basic_cc_via_dfti':
../vsl/_src/vsl_kernel/conv_corr/ccfft_all/vsl_ex_ccfft_all_conv_de.c:(.text+0xdd7): undefined reference to `mkl_dft_dfticreatedescriptor'
../vsl/_src/vsl_kernel/conv_corr/ccfft_all/vsl_ex_ccfft_all_conv_de.c:(.text+0xe1b): undefined reference to `mkl_dft_dftisetvalue'
../vsl/_src/vsl_kernel/conv_corr/ccfft_all/vsl_ex_ccfft_all_conv_de.c:(.text+0xe25): undefined reference to `mkl_dft_dfticommitdescriptor'
../vsl/_src/vsl_kernel/conv_corr/ccfft_all/vsl_ex_ccfft_all_conv_de.c:(.text+0xe2f): undefined reference to `mkl_dft_dftierrorclass'
../vsl/_src/vsl_kernel/conv_corr/ccfft_all/vsl_ex_ccfft_all_conv_de.c:(.text+0xe4d): undefined reference to `mkl_dft_dfticomputeforward'
../vsl/_src/vsl_kernel/conv_corr/ccfft_all/vsl_ex_ccfft_all_conv_de.c:(.text+0xe5c): undefined reference to `mkl_dft_dfticomputeforward'
../vsl/_src/vsl_kernel/conv_corr/ccfft_all/vsl_ex_ccfft_all_conv_de.c:(.text+0xe66): undefined reference to `mkl_dft_dftierrorclass'
../vsl/_src/vsl_kernel/conv_corr/ccfft_all/vsl_ex_ccfft_all_conv_de.c:(.text+0xf53): undefined reference to `mkl_dft_dfticomputebackward'
../vsl/_src/vsl_kernel/conv_corr/ccfft_all/vsl_ex_ccfft_all_conv_de.c:(.text+0xf5d): undefined reference to `mkl_dft_dftierrorclass'
../vsl/_src/vsl_kernel/conv_corr/ccfft_all/vsl_ex_ccfft_all_conv_de.c:(.text+0x107d): undefined reference to `mkl_dft_dftifreedescriptor'
../vsl/_src/vsl_kernel/conv_corr/ccfft_all/vsl_ex_ccfft_all_conv_de.c:(.text+0x1087): undefined reference to `mkl_dft_dftierrorclass'
../vsl/_src/vsl_kernel/conv_corr/ccfft_all/vsl_ex_ccfft_all_conv_de.c:(.text+0x11f9): undefined reference to `mkl_dft_dfticreatedescriptor'
which lib file should be included. Thanks a lot
0 Kudos
6 Replies
TimP
Honored Contributor III
986 Views
The link advisor on the right hand column of the header page of this forum is meant to help with such questions, for current releases. You would need at least one of the lp64 or ilp64 libraries, and one of the sequential or thread libraries.
0 Kudos
recrusader
Beginner
986 Views
Quoting - tim18
The link advisor on the right hand column of the header page of this forum is meant to help with such questions, for current releases. You would need at least one of the lp64 or ilp64 libraries, and one of the sequential or thread libraries.
thank you very much for your reply, tim18, I have used it for my compilation. However, there is some errors.
My command is
/home/yujie/intel/Compiler/11.1/046/bin/intel64/icpc -o aaa aaa.cpp -L/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/ -Wl, /home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_intel_lp64.a /home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_intel_thread.a /home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_core.a -Wl, -lguide -lpthread -lm -I/home/yujie/intel/Compiler/11.1/046/mkl/include/ /home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_gf_lp64.a

The errors are:

/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_gf_lp64.a(dfticreatedescriptor_ilp64.o): In function `mkl_dft_dfticreatedescriptor':
../../../../dft/iface/dft/dfticreatedescriptor.c:(.text+0x1a3): undefined reference to `mkl_dft_create_descriptor_md'
/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_gf_lp64.a(dfticreatedescriptor_ilp64.o):(.data1+0x0): undefined reference to `mkl_dft_commit_descriptor_d_c2c_1d_omp'
/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_gf_lp64.a(dfticreatedescriptor_ilp64.o):(.data1+0x8): undefined reference to `mkl_dft_commit_descriptor_d_c2c_md_omp'
/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_gf_lp64.a(dfticreatedescriptor_ilp64.o):(.data1+0x10): undefined reference to `mkl_dft_commit_descriptor_d_r2c_1d_omp'
/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_gf_lp64.a(dfticreatedescriptor_ilp64.o):(.data1+0x18): undefined reference to `mkl_dft_commit_descriptor_d_r2c_md_omp'
/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_gf_lp64.a(dfticreatedescriptor_ilp64.o):(.data1+0x20): undefined reference to `mkl_dft_commit_descriptor_s_c2c_1d_omp'
/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_gf_lp64.a(dfticreatedescriptor_ilp64.o):(.data1+0x28): undefined reference to `mkl_dft_commit_descriptor_s_c2c_md_omp'
/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_gf_lp64.a(dfticreatedescriptor_ilp64.o):(.data1+0x30): undefined reference to `mkl_dft_commit_descriptor_s_r2c_1d_omp'
/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_gf_lp64.a(dfticreatedescriptor_ilp64.o):(.data1+0x38): undefined reference to `mkl_dft_commit_descriptor_s_r2c_md_omp'
/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_gf_lp64.a(dfticommitdescriptor_ilp64.o): In function `mkl_dft_dfticommitdescriptor':
../../../../dft/iface/dft/dfticommitdescriptor.c:(.text+0x2c): undefined reference to `mkl_dft_determine_nioargs'
/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_gf_lp64.a(dfti_free_descriptor_external.o): In function `mkl_dft_dfti_free_descriptor_external':
../../../../dft/iface/dft/dfti_free_descriptor_external.c:(.text+0x2c): undefined reference to `mkl_dft_free_allocated_buffers'

I am wondering why "libmkl_gf_lp64.a" needs "dfticreatedescriptor_ilp64.o". You mentioned "at least one of the lp64 or ilp64 libraries". I also put xxx_ilp64.a inside the command. However, it doesn't work. Could you give me some help? thanks a lot.
0 Kudos
Andrey_G_Intel2
Employee
986 Views

Hello,

as I can see from your example, you are using CPP compiler. According to this fact, you don`t need libmkl_gf_lp64.a library because it is gfortran interface library. Just remove libmkl_gf_lp64.a from your command line.

Andrey
0 Kudos
Gennady_F_Intel
Moderator
986 Views

Hello,

as I can see from your example, you are using CPP compiler. According to this fact, you don`t need libmkl_gf_lp64.a library because it is gfortran interface library. Just remove libmkl_gf_lp64.a from your command line.

Andrey

+ don't use libguide. We recommend to use libiomp instead of libguide
-liomp5 -lpthread
0 Kudos
recrusader
Beginner
986 Views

+ don't use libguide. We recommend to use libiomp instead of libguide
-liomp5 -lpthread
Thank you very much for your help. I have changed the compile command as
"/home/yujie/intel/Compiler/11.1/046/bin/intel64/icpc -o aaaa aaaa.cpp -L/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/ -Wl, /home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_intel_lp64.a /home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_intel_thread.a /home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_core.a /home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_intel_ilp64.a -Wl, -I/home/yujie/intel/Compiler/11.1/046/mkl/include/ -L/home/yujie/intel/Compiler/11.1/046/lib/intel64/ -liomp5 -lpthread -lm"

The same errors appeared
"
/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_intel_ilp64.a(dfticreatedescriptor_ilp64.o): In function `mkl_dft_dfticreatedescriptor':
../../../../dft/iface/dft/dfticreatedescriptor.c:(.text+0x1a3): undefined reference to `mkl_dft_create_descriptor_md'
/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_intel_ilp64.a(dfticreatedescriptor_ilp64.o):(.data1+0x0): undefined reference to `mkl_dft_commit_descriptor_d_c2c_1d_omp'
/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_intel_ilp64.a(dfticreatedescriptor_ilp64.o):(.data1+0x8): undefined reference to `mkl_dft_commit_descriptor_d_c2c_md_omp'
/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_intel_ilp64.a(dfticreatedescriptor_ilp64.o):(.data1+0x10): undefined reference to `mkl_dft_commit_descriptor_d_r2c_1d_omp'
/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_intel_ilp64.a(dfticreatedescriptor_ilp64.o):(.data1+0x18): undefined reference to `mkl_dft_commit_descriptor_d_r2c_md_omp'
/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_intel_ilp64.a(dfticreatedescriptor_ilp64.o):(.data1+0x20): undefined reference to `mkl_dft_commit_descriptor_s_c2c_1d_omp'
/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_intel_ilp64.a(dfticreatedescriptor_ilp64.o):(.data1+0x28): undefined reference to `mkl_dft_commit_descriptor_s_c2c_md_omp'
/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_intel_ilp64.a(dfticreatedescriptor_ilp64.o):(.data1+0x30): undefined reference to `mkl_dft_commit_descriptor_s_r2c_1d_omp'
/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_intel_ilp64.a(dfticreatedescriptor_ilp64.o):(.data1+0x38): undefined reference to `mkl_dft_commit_descriptor_s_r2c_md_omp'
/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_intel_ilp64.a(dfticommitdescriptor_ilp64.o): In function `mkl_dft_dfticommitdescriptor':
../../../../dft/iface/dft/dfticommitdescriptor.c:(.text+0x2c): undefined reference to `mkl_dft_determine_nioargs'
/home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_intel_ilp64.a(dfti_free_descriptor_external.o): In function `mkl_dft_dfti_free_descriptor_external':
../../../../dft/iface/dft/dfti_free_descriptor_external.c:(.text+0x2c): undefined reference to `mkl_dft_free_allocated_buffers'
"
Any further advice for me? thanks so much.

0 Kudos
Andrey_G_Intel2
Employee
986 Views
recrusader,

you need to specify libmkl_intel_lp64.a or libmkl_intel_ilp64.a in link line, not both. Just remove /home/yujie/intel/Compiler/11.1/046/mkl/lib/em64t/libmkl_intel_ilp64.a and your example will be built.

Andrey

0 Kudos
Reply