error LNK2019: unresolved external symbol __iob


Symptom

When compiling an Intel® MKL-based application in Microsoft* VS 2005 with Intel® MKL mkl_solver.lib, the compiler reports:

mkl_solver.lib(print_ci.obj) : error LNK2019: unresolved external symbol __iob referenced in function _PRINT_CI

OR

ml_solver.lib(d_print_fgmres_f.obj) : error LNK2019: unresolved external symbol __iob referenced in function _d_fgmres_print_diagnostics

Note: The error happens only on IA32.


Cause

Unfortunately, there's inconsistency between Microsoft* VS 2005 and older versions of libc in Intel MKL 8.0. We build the mkl_solver.lib by Intel® C compiler and the compiler being invoked under Microsoft* VS.net 2003 generates undefined __iob reference, which is bound to the older libc versions.


Solution

Please use Intel MKL 9.0 or later to resolve this issue.

 


For more complete information about compiler optimizations, see our Optimization Notice.