ERROR in vc 6.0 (LINK : fatal error LNK1561: entry point must be defined)

导致错误 LINK : fatal error LNK1561: entry point must be defined 的原因有很多种, 网上可以搜到很多,

一般是函数入口没定义, 或者修改为/subsystem:windows /entry:mainCRTStartup,

或者使用下面的语句:

#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )

 

这里我碰到的情况比较特别, 我的是一个VC 6.0的静态lib工程(VC 2008上编译正常), 竟然报入口点没定义, 奇怪吧.

而且Release版本编译正常, 错误仅出现在Debug版, 尝试了各种方法都解决不了.

 

最后搜索到下面这个帖子, 里面有个回复提到一个MSDN的kb, 尝试了一下, 结果解决了, 这种情况非常少见, 希望对你有用.

参考: http://bbs.csdn.net/topics/337691

在36楼的回复:

PRB: Missing /c Compiler Option Causes LNK1561 Linker Error 

Q228455

--------------------------------------------------------------------------------
The information in this article applies to:

Microsoft Visual C++, 32-bit Editions, version 6.0
--------------------------------------------------------------------------------

SYMPTOMS
When compiling a multiple source file project that creates a pre-compiled header file inside the Visual C++ Integrated Development Environment (IDE), the following error can occur: 

Compiling...
StdAfx.cpp
LINK : fatal error LNK1561: entry point must be defined
Error executing cl.exe.

NOTE: The linker error is generated during the compiler phase of the build. 

CAUSE
The /c compiler option is missing from the build settings. 

RESOLUTION
Add /c to the compiler options. To do this, you must edit the compiler options in the Project Options box in the C/C++ tab under Project Settings.

NOTE: This box is only editable if the whole project is selected in the tree control on the Project Settings. 

STATUS
This behavior is by design.

MORE INFORMATION
By default, the Visual C/C++ compiler attempts to compile and link in a single step. The /c (Compile without Linking) option is used to tell the compiler to compile only. Since Visual C++ compiles and links in separate steps, then /c is required for all Visual C++ builds.

To reproduce the error, create a default MFC project and remove the /c option from the Project Settings by editing the compiler options in the Project Options box in the C/C++ tab under Project Settings. 

REFERENCES

© Microsoft Corporation 1999, All Rights Reserved.
Contributions by Kelly Marie Ward, Microsoft Corporation

Additional query words: 

Keywords : kbCompiler kbLinker kbVC600 
Issue type : kbprb 
Technology : kbvc 

Last Reviewed: February 4, 2000
© 2001 Microsoft Corporation. All rights reserved. Terms of Use.

posted @ 2013-08-10 09:33  shines77  阅读(2681)  评论(0编辑  收藏  举报