I wonder if this forum is an appropriate place for the question. I could not find a forum for MKL, so I will try my luck here.
We have purchased the Intel 2019 Suite for our HPC machine, but a C++ code of one of the users now fails to build with icpc/MKL, with the following errors:
my-path/intel/compilers_and_libraries_2019.5.281/linux/mkl/include/mkl_scalapack.h(3531): error: more than one instance of overloaded function "numroc_" has "C" linkage
MKL_INT numroc_(const MKL_INT* n, const MKL_INT* nb, const MKL_INT* iproc,
I am almost sure we did not do anything special with MKL headers when installing the 2019.5 suite, and the code used to be able to build with an ancient version of Intel 2015 and corresponding MKL.
Could you please advise, what is the Numroc_ overloaded function that all of sudden started to cause problems? How to fix it? Thanks!
University of Manitoba
You can take a look at PBLAS ( mkroot/examples/pblasc/source ) or ScaLapack (mkroot/examples/scalapackf) examples and see how to build these examples. You may also check the list and order of mkl's libs you need to properly link to follow with MKL Linker Adviser tips: https://software.intel.com/content/www/us/en/develop/articles/intel-mkl-link-line-advisor.html
Thanks for the answer!
The error is at compile time, comes from C++ compiler somehow unhappy with the headers, so any link order is irrelevant.
The particular source code file compiles with an older Intel 15.0.2 and its headers.