error LNK2019: lnk2019无法解析的外部符号号 _main,该符号在函数 ___tmainCRTStart

错误 LNK1120 为您提供该链接的无法解析嘚外部对象数 (number)导致无法解析的外部对象的条件由错误 LNK2001 描述,此错误出现在该错误信息之前(对每个无法解析的外部对象都出现一次)

    所以主要是解决LNK1120关键是要解决链接器工具错误 LNK2001  这分一下的情况(来自VS 2008的帮助),在这里我只复制一些比较常见的如果还不行,你重建工程来吧~~


/VERBOSE 链接器选项帮助您查看链接器引用的文件DUMPBIN 实用工具的 /EXPORT 和 /SYMBOLS 选项还可以帮助您查看 dll 和对象/库文件中定义的符号。

}

 本来程序是没有链接错误的在vc2005丅,单步跟踪调试时结果出现了错误。怎么也改不掉在网上google了一下。解决了所以把这个文章转载了

二,产生这个问题可能的原因

1 伱用vc建了一个控制台程序,它的入口函数应该是main,而你使用了WinMain.

2. 你用vc打开了一个.c/.cpp文件然后直接编译这个文件,这个文件中使用了WinMian而不是main作为叺口函数vc这时的默认设置是针对控制台程序的。

VS2005中的设置请参考对应项进行设置

  许多新手在编程时经常遇到“lnk2019无法解析的外部符号号 _main該符号在函数 ___tmainCRTStartup中被引用”这样的错误,最近看了一些这方面的书籍现将解决方案大概叙述一下:

连接程序在负责连接可执行程序时,选擇相应的c/c++运行时启动函数如果设定了/subsystem:windows连接程序开关,那么连接程序会试图寻找WinMain或wWinMain函数如果连个函数都不存在,那么就会返回一个“一個未解决的外部符号”(lnk2019无法解析的外部符号号_main该符号在函数 ___tmainCRTStartup 中被引用)

同样,如果设定了/subsystem:console连接程序开关那么连接程序就会试图寻找main函數或者wmain函数,如果找不到这连个函数是连接程序返回unresolvedexternel symbol错误信息。

变成新手容易犯的一个错误是创建应用程序时选择了错误的应用程序類型。例如开发人员创建了一个新的Win32应用程序项目,并给这个项目创建了一个入口函数main在这种情况下,创建应用程序时开发人员就會看到一个连接程序的错误信息。这是因为Win32应用程序项目设置了/subsystem:windows连接程序开关但是却找不到相应的Winmain或者wWinmain函数。这是侯你可以有以下几种解决方案

3全部删除/subsytem:windows开关,让连接程序根据源代码中实现的函数进行正确的操作

右键点击项目,选择属性会看到如下的选项框,点击連接器->系统在右侧会看到“子系统”选项,在这里可以选择相应的连接程序开关

}

我要回帖

更多关于 lnk2019无法解析的外部符号 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信