未知的外部符号_WinMainCRTStartup

时间:2014-11-25 08:38:02

标签: c++ linker

我在过去的3个小时内一直试图解决这个链接器错误,我不断收到错误,说我有_WinMainCRTStartup的未解析的外部符号。有谁知道可能导致此错误的原因是什么?我正在使用SDL的主要功能定义(SDL_main)

我还尝试重新创建项目,因为意外更改了某些内容,但错误仍然存​​在。

完整输出在这里 https://gist.github.com/Joshhua5/73fe4235724d95e53f48

1 个答案:

答案 0 :(得分:1)

您获得了许多未解析的外部符号,而不仅仅是_WinMainCRTStartup。这通常表示您没有链接您需要的库,并且给出了它看起来像C运行时库(由/MTd等标志控制的函数的名称,或者& #34; C / C ++ - >代码生成 - >运行时库"在项目属性对话框中。

我想我看到了问题;这条线靠近底部:

4>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\OLDNAMES.lib : warning LNK4272: library machine type 'UNKNOWN' conflicts with target machine type 'X86'

...建议您使用VS2015预览版,但我还没有想到还有针对该工具集的SDL版本,所以我猜您要链接旧版本库(期望与旧工具集链接)。是对的吗?如果是这样,您需要自己构建SDL。

另一种可能性就是你已经设置了错误的子系统类型 - SDL将期待/SUBSYSTEM:CONSOLE/SUBSYSTEM:WINDOWS(设置在"链接器 - >系统 - > ;子系统")。尝试选择现在没有选择的人。