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
/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
链接已复制
6 回复数
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.
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.
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.
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
Quoting - Andrey Gilev (Intel)
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
Quoting - Gennady Fedorov (Intel)
+ don't use libguide. We recommend to use libiomp instead of libguide
-liomp5 -lpthread
"/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.
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
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