Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
New Contributor I
14 Views

Problem with upgrade from MKL 10 to 2013

Jump to solution

What I used Visual Studio 2010 with MKL 2013 installed to upgrade a complex C#/Fortran solution  from Visual Studio 2008/Intel fortran 10.  When I build the project, I get an error linking the Fortran DLL.   The error is LNK2019: unresolved external symbol _MKL_FREEBUFFERS referenced in function _RUN_CTRL.

What can I do to resolve this error?

0 Kudos

Accepted Solutions
Highlighted
New Contributor I
14 Views

Aha, changed the call to MKL_Free_Buffers  and that worked.

 

View solution in original post

0 Kudos
6 Replies
Highlighted
Black Belt
14 Views

Check the spelling of the routine in the manual for the MKL version that is being used. I believe that it should be mkl_free_buffers.

0 Kudos
Highlighted
Employee
14 Views

Hi Don, 

Yes, could you please find the exact MKL version, MKL library being used or provide us a small test case?

And the latest version is MKL 11.3 update 1. and the documentation was 

https://software.intel.com/en-us/node/471174

Syntax

call mkl_free_buffers

Fortran Include Files/Modules

  • Include file: mkl.fi
  • Module (compiled): mkl_service.mod
  • Module (source): mkl_service.f90

    Best Regards,
    Ying
0 Kudos
Highlighted
New Contributor I
14 Views

In VS on the Tools menu it shows Intel Composer XE 2013 ​SP1.  I am not sure how to get the exact MKL library version.

 

0 Kudos
Highlighted
New Contributor I
14 Views

This is the form of the call to freebuffers in the fortran module:

    CALL MKL_FreeBuffers()

So I added the include statement:     

INCLUDE 'mkl.fi'

at the top of the module.

  This did not solve the problem.

 

 

0 Kudos
Highlighted
New Contributor I
15 Views

Aha, changed the call to MKL_Free_Buffers  and that worked.

 

View solution in original post

0 Kudos
Highlighted
Employee
14 Views

Hi Don, 

Great news!  as mejec mentioned, we change the API name MKL_FreeBuffers() in these version  between Intel Composer XE 2013 ​SP1 and Intel fortran 10) . You can open the mkl.h or mkl.fi , which is supposed in <MKl insatll direcory>\include\mkl.h|mkl.fi  to find the exact version.

and check the function's declaration in mkl_service.fi. for example

 INTERFACE

      subroutine MKL_FREE_BUFFERS()
      END
      END INTERFACE.

Best Regards,

Ying 

0 Kudos