BUG: Using the Iostream Library with Alternate Math in C

Last reviewed: July 17, 1997
Article ID: Q85873
7.00 | 1.00 1.50 MS-DOS | WINDOWS kbprg kbbuglist

The information in this article applies to:

  • The C Run-time (CRT) included with:

        - Microsoft C/C++ for MS-DOS, version 7.0
        - Microsoft Visual C/C++ for Windows, versions 1.0 and 1.5
    

SYMPTOMS

Linking an application that uses the iostream library with an alternate math library generates the following errors:

   error L2029: 'FISRQQ': unresolved external
   error L2029: 'FJSRQQ': unresolved external
   error L2029: 'FIWRQQ': unresolved external
   error L2029: 'FIARQQ': unresolved external
   error L2029: 'FJARQQ': unresolved external
   error L2029: 'FICRQQ': unresolved external
   error L2029: 'FJCRQQ': unresolved external
   error L2029: 'FIDRQQ': unresolved external
   error L2029: 'FIERQQ': unresolved external

RESOLUTION

If the source was compiled with /FPa, explicitly link with the emulator or coprocessor library instead of letting the linker choose the alternative math libraries by default. This can be done by adding the /NOD option to the libraries field of the link command line as shown below:

     link ... ,,, /NOD:<m>libca <m>libc<y> ...

Where <m> is memory model: s, m, c, or l. <y> is math option: e or 7

-or-

Recompile with /FPi or /FPi87, rather than /FPa, so that the linker is passed the name of the emulator or coprocessor library.

-or-

Convert the code so that it does not use the iostream library.

STATUS

Microsoft has confirmed this to be a problem in the products listed at the beginning of this article. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

This is not a problem in Visual C++ 32-bit Edition, because /FPa is not supported.

MORE INFORMATION

The following code example demonstrates this problem:

Sample Code

/* Compile options needed: /FPa
*/

#include <iostream.h>

void main( )
{
   float FloatVar=2.718;

   cout << FloatVar;
}


Additional reference words: 7.00 1.00 1.50
KBCategory: kbprg kbbuglist
KBSubcategory: CRTIss
Keywords : kb16bitonly


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: July 17, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.