The information in this article applies to:
SYMPTOMS
Compiling a program containing floating point divisions and linking with
run-time libraries other than those supplied with Microsoft Visual C++
version 2.1 can result in LNK2001 unresolved external errors on the
following functions:
This can occur when linking to libraries such as CRTDLL.LIB or the run-time libraries that came with Microsoft Visual C++ version 2.0. CAUSEThe compiler and libraries that ship with Microsoft Visual C++ version 2.1 provide a method of avoiding Pentium division instructions. Pentium division instructions can generate inaccurate results in some cases. The compiler inserts calls to emulation functions instead of inserting floating point processor instructions. These floating point division emulation functions are in the run-time libraries shipped with version Visual C++ version 2.1, but not with earlier versions of the libraries. RESOLUTION
The libraries and compiler that come with Microsoft Visual C++ version 2.1
are designed to work together. If other libraries must be used, use the
following compiler switch to force insertion of floating point processor
instructions instead of inserting calls to the emulation functions:
STATUSThis behavior is by design. MORE INFORMATION
The sample code below will generate the following four errors if the LIB
environment variable is pointing to the Visual C++ version 2.0 libraries:
Using the compile option "/QIfdiv-" will prevent the references to these functions. For information about a related issue on Pentium floating point functions, please see the following article in the Microsoft Knowledge Base: Q128148 Procedure Entry Point fdiv Not Located in MSVCRT20.DLL Sample Code
Additional query words: 2.10 2.00 2.55 9.10
Keywords : kbCRT kbVC |
Last Reviewed: September 10, 1999 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |