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

Pardiso with Cygwin

Rawlins__David
Principiante
1.064 Visualizações
Hi,

I'm trying to run the sample program for Pardiso under Cygwin. This is my compile command:

g++ -o Pardiso.exe Pardiso.cpp -O3 C:/Program\ Files/Intel/MKL/10.1.1.022/ia32/lib/mkl_core.lib

I'm getting the following errors:

/cygdrive/c/DOCUME~1/Dave/LOCALS~1/Temp/ccVbk74J.o:Pardiso.cpp:(.text+0x6f): undefined reference to `_pardisoinit_'
/cygdrive/c/DOCUME~1/Dave/LOCALS~1/Temp/ccVbk74J.o:Pardiso.cpp:(.text+0x290): undefined reference to `_pardiso_'
/cygdrive/c/DOCUME~1/Dave/LOCALS~1/Temp/ccVbk74J.o:Pardiso.cpp:(.text+0x33b): undefined reference to `_pardiso_'
/cygdrive/c/DOCUME~1/Dave/LOCALS~1/Temp/ccVbk74J.o:Pardiso.cpp:(.text+0x40c): undefined reference to `_pardiso_'
/cygdrive/c/DOCUME~1/Dave/LOCALS~1/Temp/ccVbk74J.o:Pardiso.cpp:(.text+0x4ab): undefined reference to `_pardiso_'

Any help would be appreciated.

Thanks,

Dave
0 Kudos
4 Respostas
TimP
Colaborador honorário III
1.064 Visualizações
Hi,

I'm trying to run the sample program for Pardiso under Cygwin. This is my compile command:

g++ -o Pardiso.exe Pardiso.cpp -O3 C:/Program Files/Intel/MKL/10.1.1.022/ia32/lib/mkl_core.lib

I'm getting the following errors:

/cygdrive/c/DOCUME~1/Dave/LOCALS~1/Temp/ccVbk74J.o:Pardiso.cpp:(.text+0x6f): undefined reference to `_pardisoinit_'
/cygdrive/c/DOCUME~1/Dave/LOCALS~1/Temp/ccVbk74J.o:Pardiso.cpp:(.text+0x290): undefined reference to `_pardiso_'
/cygdrive/c/DOCUME~1/Dave/LOCALS~1/Temp/ccVbk74J.o:Pardiso.cpp:(.text+0x33b): undefined reference to `_pardiso_'
/cygdrive/c/DOCUME~1/Dave/LOCALS~1/Temp/ccVbk74J.o:Pardiso.cpp:(.text+0x40c): undefined reference to `_pardiso_'
/cygdrive/c/DOCUME~1/Dave/LOCALS~1/Temp/ccVbk74J.o:Pardiso.cpp:(.text+0x4ab): undefined reference to `_pardiso_'

Any help would be appreciated.

Thanks,

Dave
This is difficult, not something you could accomplish without thought and research. MKL for Windows would use Microsoft conventions, so there would be no appended _ such as gfortran would expect. You may also require the cygwin utility for converting path conventions. The mingw cross compiler might be somewhat more appropriate, as you would require Windows like run time support.
You could use ICL or CL under cygwin by opening their command prompt window and running cygwin.bat to superimpose cygwin paths. If you had set up the MKL paths first, as would happen with ICL Professional, you wouldn't have to deal with incompatible installation paths.
Rawlins__David
Principiante
1.064 Visualizações
Quoting - tim18
This is difficult, not something you could accomplish without thought and research. MKL for Windows would use Microsoft conventions, so there would be no appended _ such as gfortran would expect. You may also require the cygwin utility for converting path conventions. The mingw cross compiler might be somewhat more appropriate, as you would require Windows like run time support.
You could use ICL or CL under cygwin by opening their command prompt window and running cygwin.bat to superimpose cygwin paths. If you had set up the MKL paths first, as would happen with ICL Professional, you wouldn't have to deal with incompatible installation paths.

Thanks, Tim. I think I'll just go with the VC++ compiler.

Dave
Todd_R_Intel
Funcionário
1.064 Visualizações
Tim is right to say this is non-trivial, but I did note that you also did not include all the libraries that are required.You'll need to add aninterface library to the link line and that will have the pardiso names that will call the functionality in the core library.The link line advisor might be helpful.

-Todd
Rawlins__David
Principiante
1.064 Visualizações
Tim is right to say this is non-trivial, but I did note that you also did not include all the libraries that are required.You'll need to add aninterface library to the link line and that will have the pardiso names that will call the functionality in the core library.The link line advisor might be helpful.

-Todd

Thanks, Todd. I got it running by using the link line advisor.

Cheers,

Dave
Responder