我收到错误"LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup"
I'm getting the error "LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup"
请帮忙。在Visual Studio 2008上,我收到以下错误。
============================================================
1>Microsoft (R) Windows Resource To Object Converter Version 9.00.30729.01
1>Copyright (C) Microsoft Corporation. All rights reserved.
1>adding resource. type:ICON, name:1, language:0x0409, flags:0x1010, size:744
1>adding resource. type:ICON, name:2, language:0x0409, flags:0x1010, size:296
1>adding resource. type:GROUP_ICON, name:128, language:0x0409, flags:0x1030, size:34
1>adding resource. type:DIALOG, name:100, language:0x0409, flags:0x1030, size:374
1>adding resource. type:DIALOG, name:102, language:0x0409, flags:0x1030, size:784
1>adding resource. type:VERSION, name:1, language:0x0409, flags:0x30, size:928
1>adding resource. type:STRING, name:7, language:0x0409, flags:0x1030, size:68
1>LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup
1>.Release/DiskTest.exe : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://c:WinIRDirUtilitiesDiskTestReleaseBuildLog.htm"
1>DiskTest - 2 error(s), 0 warning(s)
1>Build log was saved at "file://c:WinIRDirUtilitiesCommAppReleaseBuildLog.htm"
==============================================================
情况是这样的。- 磁盘测试.exe是我的解决方案中的 3 个项目之一- 此项目非常适合调试 x64、发布 x64 和调试 Win32。 发布 Win32 是唯一生成这些错误的版本。- 我花了几个小时比较所有 4 种配置/计算机组合的属性页面,并且确信从一个版本到下一个版本没有缺少任何属性。 我特别注意了"其他依赖项"、"其他库目录"、"输入"等。 当然,.lib 文件的路径指向 \Debug 或 \Release 以及相应配置或平台的 \x86 或 \x64。
该项目唯一的"附加依赖项"是用于调试的 SBF_Util.lib 和 SBF_Utild.lib。 我确保该库的所有 4 个版本(调试 win32 和 x64,以及发布 win32 和 x64(存在于每个"附加库目录"中指定的文件夹中,我还检查了每个版本的库上的转储箱以确保平台匹配。
我见过缺少主入口点的其他情况,但在这种情况下,所有其他版本的构建都没有问题,只有在 Win32 Relase 版本上生成此错误,所以我认为我不需要更改代码中的任何内容。
谁能提供任何线索?,我不知道。 任何想法将不胜感激。 谢谢。
置信
!!我发现了问题!导致这个严重错误的原因非常简单:"空间">
事实证明,在 Configuration->C/C++->OutputFiles->Object 文件名下:我有:"$(IntDir(\ ">
直到我非常仔细地注意 Kdiff3 窗口,并注意到这个微小的下划线来表示空间,才注意到这个空间。
这个空间已经存在了几个月,因为这个项目无人看管(在我加入之前(,因为没有人能找到修复它的方法,所以他们只是停止使用它。很可能是复制粘贴错误。
谢谢大家的想法。特别是Xearinox的第一个答案,让我想到了比较所有模式。 我将尝试花一些时间编写一个工具,将项目/解决方案文件解析为一个 4 列的工作表,其中列出了所有配置和平台的所有属性,以便我们可以轻松比较它们。 再次感谢大家。
打开项目的设置页,转到链接器→系统并检查">子系统"属性。 通过从配置下拉框中切换配置,确保在所有项目配置中将其设置为相同的值。
假设预期的入口点是 main
(或其变体之一,如 _tmain
或 wmain
(,您需要确保使用"子系统"属性设置为 CONSOLE。
作为入口点的WinMain。
就我而言,我尝试编译的文件具有错误的属性。
我在文件扩展名中创建了带有杂散字符的文件,因此我的项目给了它错误的项目类型:Does not participate in build
。
重命名后,我进入了它的属性,并将项目类型更改为 <reset to default>
,这会将其重置为 C/C++ Compiler
。
- CppSQLite 抛出"LNK2019: unresolved external symbol"错误
- Visual Studio中的wxwidgets应用程序给出错误"LNK2019 unresolved external symbol"
- 我的游戏引擎的 spdlog 日志记录出现奇怪的"unresolved external symbol"错误
- 如何修复"unresolved external symbol _gladLoadGLLoader referenced in function _main"和"unresolved external
- 尝试使用 CPP 构建类时"unresolved external..."
- 通过覆盖虚拟函数来获取'unresolved external symbol'
- 运行时动态加载库时出错"unresolved external symbol"
- 为什么 VS C++链接器返回具有混合 DLL 转发的"LNK2001: unresolved external symbol"?
- Visual Studio 2017 中的 MySQL 连接器/C++ 错误"Unresolved external symbol _get_driver_instance"
- CMake 和 Visual Studio 出现"unresolved external symbol"错误
- DLL 注入编译 "unresolved external symbol" Visual Studio C++
- "Error LNK2001: unresolved external symbol _main"仍然存在
- QT 单元测试 moc "unresolved external symbol" for QMetaObject
- "error LNK2019: unresolved external fatal"和"error LNK1120: 1 unresolved externals"
- 主外部功能的C++ "unresolved external symbol"
- 错误 : "error LNK2019: unresolved external symbol"
- 为什么我的代码生成"Unresolved external symbol"错误?
- 使用三角形库时的"unresolved external symbol _triangulate"
- 如何修复" Error LNK2019 : unresolved external symbol ... "
- 问题:"error LNK2019: unresolved external symbol"