Article ID: 102697 - Last Review: December 9, 2005 - Revision: 5.1 An attempt to create a debugging library that uses precompiled headers may fail, and fatal build errors may be generatedThis article was previously published under Q102697 On This PageSYMPTOMS An attempt to create a debugging library that uses
precompiled headers may fail and fatal build errors may be generated. With the
16-bit edition, the CVPACK and LINK utilities may generate the following error
message: CVPACK : fatal error CK1017: cannot find
precompiled types file; relink with file.obj LINK : warning LNK4027: CVPACK error LINK : fatal error LNK1211:
precompiled type information not found; "<filename>" not linked or
overwritten
CAUSE When you specify the /Yc and /Z7 options on the compiler command line, Microsoft C/C++ generates a
precompiled header file that contains CodeView debugging information. The error
occurs only when you store the precompiled header in a library, use the library
to build an object module, and the source code does not refer to any of the
functions the precompiled header file defines.
RESOLUTION There are two methods to work around this situation, as
follows:
STATUS This behavior is by design. MORE INFORMATION When you compile a module with the /Yc and /Yl<symbol_name> option switches using the 32-bit edition, the compiler creates a
symbol similar to __@@_PchSym_@00@...@<symbol_name>, where the ellipsis
(...) represents a linker generated character string, and stores it in the
object module. Any source file that you compile with this precompiled header
refers to the specified symbol, which causes the linker to include the object
module and its debugging information from the library. The following code example demonstrates the problem. Sample codeTEST.HTEST1.CTEST2.CTEST3.CAPPLIES TO
| Article Translations
|

Back to the top
