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

unresolved references with em64t (ok with ia32)

lel4866
Beginner
827 Views
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 Replies
TimP
Honored Contributor III
827 Views
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.
0 Kudos
lel4866
Beginner
827 Views
I thought I did switch to the em64t libs: mkl_em64t.lib. It still gives unresolved external reference.
0 Kudos
lel4866
Beginner
827 Views
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.
0 Kudos
Andrey_G_Intel2
Employee
827 Views

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

0 Kudos
lel4866
Beginner
827 Views
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
0 Kudos
Reply