在Visual Studio 2010中使用C进行编译,得到MSVCRT.lib(crtexe.obj):错误LNK2019

时间:2014-11-13 15:26:04

标签: c visual-studio-2010

Visual Studio 2010,在C编译期间,抱怨

  

MSVCRTD.lib(crtexe.obj):错误LNK2019和致命错误LNK1120

我已经读过你必须在属性下更改项目的配置 - > linker - > subsystem - >子系统/控制台(/ SUBSYSTEM:CONSOLE),但这不是我的情况。

代码应该打印一行文字

#include <stdio.h>
#include <stdlib.h>


int main() {

    printf("As soon as installed, VS2010 can't compile. Or maybe I'm doing something wrong.");

    return 0;

} 

包含文件已正确安装在include目录中。


编辑:完整的错误消息是:

  

MSVCRTD.lib(crtexe.obj):函数___ tmainCRTStartup中引用的未解析外部符号_main

  

致命错误LNK1120:1个未解析的外部链接

1 个答案:

答案 0 :(得分:1)

正如您在许多情况下在问题中所述,问题是因为人们在Visual Studio的项目设置向导中选择了错误的项目类型。使用&#34;控制台应用程序&#34;将使链接器查找_main而#34; Windows应用程序&#34;将使链接器查找_WinMain(请参阅MSDN上的WinMain)。但是,如果子系统是正确的,另一个可能导致链接失败的简单错误(在不知不觉中)没有定义_main。如果由于某种原因,_main在您的源中但实际上没有生成(可能包括源由于某种原因未被包含在构建中,由于某些宏定义保护它不会生成该函数,等等)你仍会得到你看到的错误。