Q58953: Must LINK 87.LIB Stub File in .OBJ List, NOT in the .LIB List
Article: Q58953 Product(s): See article Version(s): 7.00 | 7.00 Operating System(s): MS-DOS | OS/2 Keyword(s): ENDUSER | SR# S900215-30 | mspl13_basic Last Modified: 1-MAR-1990 Page 612 of the "Microsoft BASIC 7.0: Programmer's Guide" correctly states the following concerning the .LIB stub files (87.LIB, NOTRNEMR.LIB, and NOTRNEMP.LIB): Stub files (including the .LIB files listed) are specified in the <objfiles> field of LINK. You must supply the /NOE (/NOEXTDICTIONARY) option when linking any of the stub files. If you mistakenly link the 87.LIB, NOTRNEMR.LIB, or NOTRNEMP.LIB stub file in the .LIB area instead of the .OBJ area of the LINK.EXE command line, the stub file will be ignored, and no code is excluded from your .EXE file. This information applies to Microsoft BASIC Professional Development System (PDS) Version 7.00 for MS-DOS and MS OS/2. Example of Using 87.LIB Stub File --------------------------------- To remove floating-point-coprocessor emulation code from a stand-alone BASIC PDS 7.00 .EXE program, the 87.LIB file must be placed in the .OBJ area in the LINK.EXE command line, as follows: BC test/O; LINK test+87.LIB /NOE; The resulting .EXE program requires the presence of an 8087, 80287, or 80387 (80x87) numeric coprocessor. 87.LIB should be placed in the linker's objects (.OBJ) list, NOT in the libraries (.LIB) list. If you mistakenly link the 87.LIB file in the .LIB area of the LINK.EXE command line, 87.LIB is ignored, and no code is excluded from your .EXE file. (The resulting .EXE program will run on machines with or without a coprocessor.) Below is an example of the WRONG way to link the 87.LIB stub file: LINK test,,,87.LIB /NOE; This is wrong because the linker first searches the default BASIC libraries for the references it needs and only then searches your listed .LIB files for unresolved references (if any). For stub files to work, they must appear in the .OBJ area of the LINK command line to resolve routine references before the default library reference search.
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.
Copyright Microsoft Corporation 1986-2002.