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

unresolved references with em64t (ok with ia32)

lel4866
Principiante
828 Visualizações
When I compile the example code (calling zdotc) under Visual Studio 2005 using ia32 (specifiying mkl_c.lib as an Additional Dependency for the Linker), everything works fine and executes properly.

However, taking the same source code and specifying mkl_em64t_lib as an Additional Dependency for the Linker, I get:

error LNK2019: unresolved external symbol _zdotc referened in function _main

Same if I replace the call to zdotc with cbals_ddot (with appropriate source code changes).

Any suggestions?

Thanks.

Larry Lewis
0 Kudos
5 Respostas
TimP
Colaborador honorário III
828 Visualizações
You need the em64t MKL libraries equivalent to those you used for the 32-bit build. If you are building both 32- and 64-bit on the same platform, I guess you could have difficulty if you depend on a default PATH setting which you may have selected when installing MKL.
lel4866
Principiante
828 Visualizações
I thought I did switch to the em64t libs: mkl_em64t.lib. It still gives unresolved external reference.
lel4866
Principiante
828 Visualizações
Also, I did a dumpbin of the two libs: 1ia32mkl_c.lib and em64tmkl_em64t.lib. ia32mkl_c.lib has virtually all of its defined symbols starting with a preceeding _, while em64tmkl_em64t.lib has none of it's symbols define with a preceeding underscore.

My guess is that this is the problem, but I don't know what caused it or how to get around it.
Andrey_G_Intel2
Funcionário
828 Visualizações

Could you tell us that version of MKL are you using?

lel4866
Principiante
828 Visualizações
I've tried both 9.1.027 and 10.0.006, but here's the solution (at least for 10.0.006):

1. You have to install the Visual Studio 2005 64-bit compilers (I hadn't)
2. You have to use the Configuration Manager in VS 2005 to set the Platform to x64
Responder