fal*_*onK 5 c++ windows winapi linker-errors visual-studio
请帮忙。在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:\WinIRDir\Utilities\DiskTest\Release\BuildLog.htm"
   1>DiskTest - 2 error(s), 0 warning(s)
   1>Build log was saved at "file://c:\WinIRDir\Utilities\CommApp\Release\BuildLog.htm"
==============================================================
这是情况。-DiskTest.exe是我的解决方案中的3个项目之一-此项目为Debug x64,Release x64和Debug Win32完美构建。Win32发行版是唯一产生这些错误的人。-我花了数小时比较所有4种配置/机器组合的属性页,并确信从一个版本到下一个版本都不会缺少任何属性。我特别注意“其他依赖项”,“其他Librari目录”,“输入”等。当然,指向.lib文件的路径指向\ Debug或\ Release,以及指向相应配置或平台的\ x86或\ x64 。
该项目具有的唯一“附加依赖项”是用于调试的SBF_Util.lib和SBF_Utild.lib。我确保该库的所有4个版本(调试win32和x64,以及发行版win32和x64)都存在于每个“附加库目录”中指定的文件夹中,我还检查了库的每个版本上的dumpbin以确保平台匹配。
我曾见过其他情况,其中缺少主入口点,但是在这种情况下,所有其他版本的构建都没有问题,只有在Win32 Relase版本上才会产生此错误,因此我认为不需要在其中进行任何更改。代码。
有人可以提供任何线索吗?我没有主意。任何想法将不胜感激。谢谢。
难以置信的!!!
我发现了问题!导致此严重错误的原因非常简单:“ SPACE”
原来,在Configuration-> C / C ++-> OutputFiles-> Object File Name下:我有:“ $(IntDir)\”
直到我非常注意Kdiff3窗口,才注意到空格,并注意到这个很小的下划线表示空格。
这个空间已经存在了几个月,因为这个项目没有人看管(在我上任之前),因为没人能找到解决方案,所以他们只是停止使用它。最有可能是复制粘贴错误。
谢谢大家的想法。特别是Xearinox的第一个答案,使我开始思考比较所有模式。我将尝试寻找一些时间来编写一个工具,以将项目/解决方案文件解析为4列的工作表,其中列出了所有配置和平台的所有属性,因此我们可以轻松进行比较。再次谢谢大家。
打开项目的设置页面,转到Linker \xe2\x86\x92 System并检查SubSystem属性。通过从配置下拉框中切换配置,确保在所有项目配置中将其设置为相同的值。
\n\n假设您的预期入口点是main(或其变体之一,例如_tmain或wmain),您需要确保将使用的 SubSystem 属性设置为CONSOLE。