compile errors using vsldConvExec1D()

compile errors using vsldConvExec1D()

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

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

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.

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.

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

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.

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

Leave a Comment

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