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

compile errors using vsldConvExec1D()

recrusader
初学者
1,351 次查看
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 项奖励
6 回复数
TimP
名誉分销商 III
1,351 次查看
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 项奖励
recrusader
初学者
1,351 次查看
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 项奖励
Andrey_G_Intel2
1,351 次查看

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 项奖励
Gennady_F_Intel
主持人
1,351 次查看

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 项奖励
recrusader
初学者
1,351 次查看

+ 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 项奖励
Andrey_G_Intel2
1,351 次查看
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 项奖励
回复