<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Undefined symbol errors in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Undefined-symbol-errors/m-p/830870#M5556</link>
    <description>Never mind - I found the problem! &lt;B&gt;The correct thing to do was to include mkl_lapack95_ilp64.a&lt;/B&gt; in addition to those above.</description>
    <pubDate>Thu, 29 Apr 2010 17:12:01 GMT</pubDate>
    <dc:creator>maxwell1234</dc:creator>
    <dc:date>2010-04-29T17:12:01Z</dc:date>
    <item>
      <title>Undefined symbol errors</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Undefined-symbol-errors/m-p/830866#M5552</link>
      <description>&lt;DIV&gt;&lt;SPAN style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;Hello Everyone,&lt;/SPAN&gt;&lt;/DIV&gt;I'm trying to modify some antiquated code to use a solver from the intel mkl and I'm having trouble getting ifort to correctly link the code. I had to compile my own copy of the f90 interface to work on my system, which is in ..../mkl/custom/lib/64 etc. Any insight that you can provide is most welcome!&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;Thanks,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;Max&lt;BR /&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;I try to compile with:&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;ifort bemech.f90 -heap_arrays -L$MKL_LIB -I$MKL_INC -Wl,--start-group $MKL_LIB/libmkl_lapack95_lp64.a -Wl,--end-group -lpthread -liomp5&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;The error that I receive is:&lt;DIV&gt;&lt;DIV id="_mcePaste"&gt;/data/64/max/sw/intel/ifc/mkl/custom/lib/64/libmkl_lapack95_lp64.a(sgetrf.o): In function `sgetrf_f95_':&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;source/sgetrf.f90:(.text+0x2b6): undefined reference to `sgetrf_'&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;source/sgetrf.f90:(.text+0x509): undefined reference to `xerbla_'&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/data/64/max/sw/intel/ifc/mkl/custom/lib/64/libmkl_lapack95_lp64.a(sgetri.o): In function `sgetri_f95_':&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;source/sgetri.f90:(.text+0x28a): undefined reference to `sgetri_'&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;source/sgetri.f90:(.text+0x367): undefined reference to `xerbla_'&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;source/sgetri.f90:(.text+0x786): undefined reference to `sgetri_'&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;/data/64/max/sw/intel/ifc/mkl/custom/lib/64/libmkl_lapack95_lp64.a(sgetrs1.o): In function `sgetrs1_f95_':&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;source/sgetrs1.f90:(.text+0x332): undefined reference to `sgetrs_'&lt;/DIV&gt;&lt;DIV id="_mcePaste"&gt;source/sgetrs1.f90:(.text+0x49f): undefined reference to `xerbla_'&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;/data/64/max/sw/intel/ifc/mkl/custom/lib/64/libmkl_lapack95_lp64.a(sgetrf.o): In function `sgetrf_f95_':source/sgetrf.f90:(.text+0x2b6): undefined reference to `sgetrf_'source/sgetrf.f90:(.text+0x509): undefined reference to `xerbla_'/data/64/max/sw/intel/ifc/mkl/custom/lib/64/libmkl_lapack95_lp64.a(sgetri.o): In function `sgetri_f95_':source/sgetri.f90:(.text+0x28a): undefined reference to `sgetri_'source/sgetri.f90:(.text+0x367): undefined reference to `xerbla_'source/sgetri.f90:(.text+0x786): undefined reference to `sgetri_'/data/64/max/sw/intel/ifc/mkl/custom/lib/64/libmkl_lapack95_lp64.a(sgetrs1.o): In function `sgetrs1_f95_':source/sgetrs1.f90:(.text+0x332): undefined reference to `sgetrs_'source/sgetrs1.f90:(.text+0x49f): undefined reference to `xerbla_'&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;The calling program looks like this:&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;  SUBROUTINE INVSOLVR(NROW,NCOL,A,N,INDIC)&lt;/DIV&gt;&lt;DIV&gt;  use f95_precision, only: wp =&amp;gt; sp&lt;/DIV&gt;&lt;DIV&gt;  use lapack95, only: getrf, getrs, getri&lt;/DIV&gt;&lt;DIV&gt;!  Solve A x = y&lt;/DIV&gt;&lt;DIV&gt;!  A array containing A&lt;/DIV&gt;&lt;DIV&gt;!  NROW, NCOL rows and cols of A&lt;/DIV&gt;&lt;DIV&gt;!  N number of equations&lt;/DIV&gt;&lt;DIV&gt;!  After computation, A should contain inverse matrix and vector x&lt;/DIV&gt;&lt;DIV&gt;!  INDIC = -1 : return just inverse of A&lt;/DIV&gt;&lt;DIV&gt;!  INDIC = 0 : return inverse of A and x&lt;/DIV&gt;&lt;DIV&gt;!  INDIC = 1 : return just x&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;  INTEGER(KIND=4) :: IPIV(10000)&lt;/DIV&gt;&lt;DIV&gt;  INTEGER(KIND=4) IERR&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;  REAL(KIND=4) :: C(10000,10000)&lt;/DIV&gt;&lt;DIV&gt;  REAL(KIND=4),DIMENSION (:), ALLOCATABLE :: Y&lt;/DIV&gt;&lt;DIV&gt;  DIMENSION A(NROW,NCOL),W(N),IROW(N)&lt;/DIV&gt;&lt;DIV&gt;  ALLOCATE(Y(N))&lt;/DIV&gt;&lt;DIV&gt;    call GETRF( C, IPIV)&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;    ! C holds LU factorization of former C&lt;/DIV&gt;&lt;DIV&gt;    call getrs( C, IPIV, Y, 'N', IERR)&lt;/DIV&gt;&lt;DIV&gt;    ! Y now contains solution.&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 29 Apr 2010 06:24:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Undefined-symbol-errors/m-p/830866#M5552</guid>
      <dc:creator>maxwell1234</dc:creator>
      <dc:date>2010-04-29T06:24:02Z</dc:date>
    </item>
    <item>
      <title>Undefined symbol errors</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Undefined-symbol-errors/m-p/830867#M5553</link>
      <description>Hi,&lt;BR /&gt;&lt;BR /&gt;You should add more MKL libraries, not just $MKL_LIB/libmkl_lapack95_lp64.a&lt;BR /&gt;&lt;BR /&gt;Pleasetry &lt;STRONG&gt;Intel MKL Link Line Advisor&lt;/STRONG&gt;at the top of MKL Forum to get correct list of MKL libraries</description>
      <pubDate>Thu, 29 Apr 2010 08:25:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Undefined-symbol-errors/m-p/830867#M5553</guid>
      <dc:creator>barragan_villanueva_</dc:creator>
      <dc:date>2010-04-29T08:25:22Z</dc:date>
    </item>
    <item>
      <title>Undefined symbol errors</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Undefined-symbol-errors/m-p/830868#M5554</link>
      <description>&lt;DIV&gt;Please change the order linking of the threading libraries : it should be-liomp5-lpthread&lt;/DIV&gt;instead of"-lpthread -liomp5"</description>
      <pubDate>Thu, 29 Apr 2010 11:02:19 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Undefined-symbol-errors/m-p/830868#M5554</guid>
      <dc:creator>Gennady_F_Intel</dc:creator>
      <dc:date>2010-04-29T11:02:19Z</dc:date>
    </item>
    <item>
      <title>Undefined symbol errors</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Undefined-symbol-errors/m-p/830869#M5555</link>
      <description>I used the link line adviser and consequently used this compile command:&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV id="_mcePaste"&gt;export MKLPATH=$MKLROOT/lib/intel64&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;ifort bemech.f90 -heap_arrays -I$MKL_INC -L$MKLPATH/libmkl_solver_ilp64.a -Wl,--start-group $MKLPATH/libmkl_intel_ilp64.a $MKLPATH/libmkl_intel_thread.a $MKLPATH/libmkl_core.a -Wl,--end-group -openmp -lpthread&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Unfortunately, there are still undefined references, albeit different ones. Any ideas?&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;bash-3.2$ ./buildcmd.sh&lt;/DIV&gt;&lt;DIV&gt;/tmp/ifortcZUc3U.o: In function `el_solve_':&lt;/DIV&gt;&lt;DIV&gt;bemech.f90:(.text+0x1bc8b): undefined reference to `sgetrf_mkl95_'&lt;/DIV&gt;&lt;DIV&gt;bemech.f90:(.text+0x1bd61): undefined reference to `sgetrs1_mkl95_'&lt;/DIV&gt;&lt;DIV&gt;/tmp/ifortcZUc3U.o: In function `invsolvr_':&lt;/DIV&gt;&lt;DIV&gt;bemech.f90:(.text+0x24538): undefined reference to `sgetrf_mkl95_'&lt;/DIV&gt;&lt;DIV&gt;bemech.f90:(.text+0x2461a): undefined reference to `sgetrs1_mkl95_'&lt;/DIV&gt;&lt;DIV&gt;bemech.f90:(.text+0x246ec): undefined reference to `sgetri_mkl95_'&lt;/DIV&gt;&lt;DIV&gt;bemech.f90:(.text+0x24ba1): undefined reference to `sgetrf_mkl95_'&lt;/DIV&gt;&lt;DIV&gt;bemech.f90:(.text+0x24c86): undefined reference to `sgetrs1_mkl95_'&lt;/DIV&gt;&lt;DIV&gt;bash-3.2$&lt;/DIV&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Thanks!&lt;/DIV&gt;&lt;DIV&gt;Max&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 29 Apr 2010 17:09:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Undefined-symbol-errors/m-p/830869#M5555</guid>
      <dc:creator>maxwell1234</dc:creator>
      <dc:date>2010-04-29T17:09:37Z</dc:date>
    </item>
    <item>
      <title>Undefined symbol errors</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Undefined-symbol-errors/m-p/830870#M5556</link>
      <description>Never mind - I found the problem! &lt;B&gt;The correct thing to do was to include mkl_lapack95_ilp64.a&lt;/B&gt; in addition to those above.</description>
      <pubDate>Thu, 29 Apr 2010 17:12:01 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Undefined-symbol-errors/m-p/830870#M5556</guid>
      <dc:creator>maxwell1234</dc:creator>
      <dc:date>2010-04-29T17:12:01Z</dc:date>
    </item>
  </channel>
</rss>

