5

助けてください。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 つのプロジェクトの 1 つです。このプロジェクトは、Debug x64、Release x64、および Debug Win32 用に完全にビルドされます。リリース Win32 は、これらのエラーを生成する唯一のものです。- 構成とマシンの 4 つの組み合わせすべてのプロパティ ページを比較するのに何時間も費やしましたが、あるバージョンから次のバージョンへのプロパティの欠落はないと確信しています。「追加の依存関係」、「追加のライブラリ ディレクトリ」、「入力」などに特に注意を払いました。もちろん、.lib ファイルへのパスは \Debug または \Release のいずれかを指し、それぞれの構成またはプラットフォームに対して \x86 または \x64 を指します。 .

このプロジェクトが持つ唯一の「追加の依存関係」は、デバッグ用の SBF_Util.lib と SBF_Utild.lib です。このライブラリの 4 つのバージョン (win32 と x64 のデバッグ、および win32 と x64 のリリース) がすべて、各「追加ライブラリ ディレクトリ」で指定されたフォルダーに存在することを確認しました。また、ライブラリの各バージョンのダンプビンをチェックして、プラットフォームが一致していることを確認しました。 .

メイン エントリ ポイントが欠落している他の状況を見たことがありますが、この場合、他のすべてのバージョンは問題なくビルドされます。このエラーが発生するのは Win32 リリース バージョンのみであるため、何も変更する必要はないと思います。コード。

誰か手がかりを提供できますか?、私はアイデアがありません。どんなアイデアでも大歓迎です。ありがとう。

4

4 に答える 4

6

信じられない!!!

問題が見つかりました!この不可解なエラーの原因は信じられないほど単純なものでした: 「スペース」

Configuration->C/C++->OutputFiles->Object File Name: I had: "$(IntDir)\ "

Kdiff3 ウィンドウに非常に注意を払い、スペースを示すこの小さなアンダースコアに気付くまで、スペースに気付きませんでした。
このスペースは、このプロジェクトが (私が参加する前に) 放置されていたため、何ヶ月もそこにありました。ほとんどの場合、コピーと貼り付けのエラーです。

皆さん、アイデアをありがとうございました。特に、すべてのモードを比較することを考えさせられた Xearinox からの最初の回答。プロジェクト/ソリューション ファイルを解析して、すべての構成とプラットフォームのすべてのプロパティを一覧表示する 4 列のシートにするツールを作成する時間を見つけて、簡単に比較できるようにします。ありがとうございました。

于 2012-05-16T21:35:15.193 に答える
3

プロジェクトの設定ページを開き、LinkerSystemに移動して、 SubSystemプロパティを調べます。構成ドロップダウン ボックスから構成を切り替えて、すべてのプロジェクト構成で同じ値に設定されていることを確認します。

目的のエントリ ポイントが (またはまたはmainなどのそのバリアントの 1 つ) であると仮定すると、 SubSystem プロパティがCONSOLEに設定されていることを確認する必要があります。_tmainwmain

于 2012-05-16T04:05:06.133 に答える
2

エントリポイントとしてのWinMainがありません。

于 2012-05-16T17:24:35.517 に答える