1

x64 win7に、VS2008およびx64コンパイルツールをインストールしました。単純な「helloworld」コンソールプログラムでテストしていました。x86バージョンとx64バージョンの両方が完璧にコンパイルされました。x86バージョンのデバッグサブバージョンとリリースサブバージョンはどちらも正常に機能します。リリースx64バージョンも正常に動作します。ただし、Debug x64バージョンでは、常にサイドバイサイドエラーが発生します。デバッグランタイムが見つからないようです。

誰かがDebugruntimeredistをインストールすることを提案します。それは私を驚かせます:x64デバッグランタイムはすでにx86バージョンとしてVS2008インストールに付属しているはずですか?

どうもありがとう!

@ sj1900「一部のx64コンパイラコンポーネントは、VSインストールではオプションです。すべてがインストールされていることを確認する価値があります。」これがスクリーンショットです: VS2008コンポーネント

ここにはそれ以上のオプションはありませんでした。winSxSにはamd64_microsoft.vc90.debugcrtはまったくありません。奇妙な問題。

4

2 に答える 2

1

一部のx64コンパイラコンポーネントは、VSインストールではオプションです。それらがすべてインストールされていることを確認する価値があります。

于 2012-11-04T08:32:26.960 に答える
1

何時間も頭を悩ませてテストした結果、これは VS2008 インストーラーのバグであり、いくつかのオンライン リファレンスで確認されました。

最初に x64 コンパイラ ツールを使用せずに vs2008 をインストールし、後でインストーラー変更機能を使用して x64 ツールをインストールすると、バグが表示されます。すべての x64 デバッグ ランタイムと nodebug openMP ランタイムが失われます。再インストールしてもこの問題は解決しません。

インターネットで提案されている多くの方法を試しました。すべての修正プログラム、ATL 更新プログラムをインストールする、SP1 に更新する、または VCredist をインストールする...何も機能しません。

これを修正するには2つの方法があることがわかりました。

  1. VS2008 を完全にアンインストールしてから、選択した x64 ツールで VS2008 を新しくインストールします。

  2. これは、多くの修正プログラムをインストールした人にとっては厄介なことです。最も簡単な方法は、不足しているすべてのランタイムをインストールするインストーラーを作成することですcreate porject->other projects->setup project。次にadd&Merge Module-> 不足しているすべてのランタイムを選択します: Microsoft_VC90_OpenMP_x86_x64.msmMicrosoft_VC90_DebugOpenMP_x86_x64.msmおよびMicrosoft_VC90_DebugCRT_x86_x64.msm。ソリューションをビルドしてリリースし、インストーラーを実行してから に移動すると%windir%\winsxs、すべてのランタイム フォルダーが表示されます。その後、x64 プログラムのデバッグを開始できます。VS2008SP1 を使用している場合、ランタイム バージョンに関する別のエラーが発生する可能性があります。これを回避するには、インストーラーの作成を開始する前に、SP1 の ATL 更新プログラムをインストールしてください。

PS: VS2008 には、M$ がわざわざ修正することのない厄介なバグが他にもたくさんあります。したがって、プロジェクトで VC9 に固執する特別な必要がない限り、VS2008 から離れて VS2010 を試してください。

于 2012-11-04T20:59:28.497 に答える