Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
6981 Discussions

error LNK2019: unresolved external symbol "int __cdecl PARDISO(...)" ... referenced in function...

crispybits
Beginner
1,870 Views
Hi. I can complie the sample pardiso program OK, but when I try to make my own (as a dll) it gives this error:

error LNK2019: unresolved external symbol "int __cdecl PARDISO(void *,int *,int *,int *,int *,int *,double *,int *,int *,int *,int *,int *,int *,double *,double *,int *)" (?PARDISO@@YAHPAXPAH1111PAN111111221@Z) referenced in function _Mypardiso

I've added all the same .lib files that are with the sample. I can't see any substantial difference between my program and it, except mine is a dll.

It's VC++ 2008. Are there perhaps some secret options that I forgot to change? Do I really not have to #include any .h files?

These linking and dll errors are driving me round the bend. Is there some way to diagnose them without guessing? Some application that can look into a .lib file to see what's there? Any MKL documentation showing what depends on what?


0 Kudos
1 Solution
Gennady_F_Intel
Moderator
1,870 Views

Hi, just for you information: We tried to reproduce this problem with VC++ 2005 on IA32. There are no problems like you reported...
I uploaded to the previously uploaded tread 3 files as an example reproducing the problem:
1. makefile I used for building call_ooc_func.lib ( nmake lib32 )
2. call_ooc_func.c: this is "C" example of Pardiso functionality.
3. test.c
nmake lib32 - building dll - call_ooc_func.dll
nmake test - building executable file test.exe
and you can test this executable test.exe:
++++++++++++++++++++++++++++++
the expected Output:
C:DMKL_ForumMKL_DLL>
C:DMKL_ForumMKL_DLL>test.exe
=== PARDISO is running in In-Core mode, because iparam(60)=0 ===
================ PARDISO: solving a symmetric indef. system ================

......................................

....................................

and etc .....

--Gennady

View solution in original post

0 Kudos
6 Replies
Gennady_F_Intel
Moderator
1,870 Views

There are no secret options. I was able to do my own pardiso-based dll without problems but only with VS2005, nevertheless,I would recommend you submit the issue against MKL to Premier support (https://premier.intel.com/ )
--Gennady

0 Kudos
Gennady_F_Intel
Moderator
1,870 Views

There are no secret options. I was able to do my own pardiso-based dll without problems but only with VS2005, nevertheless,I would recommend you submit the issue against MKL to Premier support (https://premier.intel.com/ )
--Gennady

0 Kudos
Gennady_F_Intel
Moderator
1,871 Views

Hi, just for you information: We tried to reproduce this problem with VC++ 2005 on IA32. There are no problems like you reported...
I uploaded to the previously uploaded tread 3 files as an example reproducing the problem:
1. makefile I used for building call_ooc_func.lib ( nmake lib32 )
2. call_ooc_func.c: this is "C" example of Pardiso functionality.
3. test.c
nmake lib32 - building dll - call_ooc_func.dll
nmake test - building executable file test.exe
and you can test this executable test.exe:
++++++++++++++++++++++++++++++
the expected Output:
C:DMKL_ForumMKL_DLL>
C:DMKL_ForumMKL_DLL>test.exe
=== PARDISO is running in In-Core mode, because iparam(60)=0 ===
================ PARDISO: solving a symmetric indef. system ================

......................................

....................................

and etc .....

--Gennady

0 Kudos
crispybits
Beginner
1,870 Views
Cheers, that's great, it works now.

My problem was I didn't #include "mkl_pardiso.h". Although I see you commented it out and it was fine. No idea why tho. The sample program doesn't have it either.





Hi, just for you information: We tried to reproduce this problem with VC++ 2005 on IA32. There are no problems like you reported...
I uploaded to the previously uploaded tread 3 files as an example reproducing the problem:
1. makefile I used for building call_ooc_func.lib ( nmake lib32 )
2. call_ooc_func.c: this is "C" example of Pardiso functionality.
3. test.c
nmake lib32 - building dll - call_ooc_func.dll
nmake test - building executable file test.exe
and you can test this executable test.exe:
++++++++++++++++++++++++++++++
the expected Output:
C:DMKL_ForumMKL_DLL>
C:DMKL_ForumMKL_DLL>test.exe
=== PARDISO is running in In-Core mode, because iparam(60)=0 ===
================ PARDISO: solving a symmetric indef. system ================

......................................

....................................

and etc .....

--Gennady


0 Kudos
Gennady_F_Intel
Moderator
1,870 Views

Hem I Have no Idea.

Can you get the log with problem?

--Gennady


0 Kudos
crispybits
Beginner
1,870 Views
What's the log with problem? You mean the error output?

Hem I Have no Idea.

Can you get the log with problem?

--Gennady



0 Kudos
Reply