2010-12-08 14 views
0

Windows 32ビットで64ビットのネイティブVisual Studio 2008 C++プログラムをコンパイルしようとしています。ネイティブC++プログラムを64ビットでコンパイルするのに問題があります

msvcprtd.libのバージョンが64ビットでないため、リンク時にエラーが発生しました。

msvcprt.lib(MSVCP90.dll) : fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64' 

私はのMicrosoft Windows SDKの最後のバージョンがインストールされているが、私はx64のディレクトリ内MSVCPRTD.LIBファイルを発見したことはできません。

+0

なぜデバッグDLLを再配布することが許可されていないときに、デバッグ用にクロスコンパイルする必要がありますか? –

+0

私はリリースで同じ問題を抱えています... –

答えて

0

msvcprtd.libは最新のSDKに32ビットまたは64ビットで表示されません。 SDKのバージョン5.0では、IA64プラットフォームの場合のみ表示されています。

おそらく、libは単純に存在しません。あなたがリンクしているlibのリストからそれを削除してみて、どのようなエラーが発生したのかを見て、それらのエラーを調べると実際にリンクしたいと思うlibの名前につながるかもしれません。

0

これを試してください:あなたのプロジェクトプロパティ - >構成マネージャーに行き、プラットフォームとしてx64を指定する構成マネージャーを作成し、アクティブとして設定します。

0

私の簡単な答えは、あなたがクロスコンパイラをインストールしていることを確認しましたか? 32ビットXPで64ビットのバイナリをコンパイルしようとしたときに狂ってしまったことを覚えています。クロスコンパイラをインストールしていないことに気がつきました。 (私のVisualスタジオのメディアを手元に置いておくと便利です)。

また、Madhurは、設定が64ビットに設定されていることを確認しました。

1

このエラーは、x64ファイルを参照するようにライブラリディレクトリが設定されていないことが原因です。これは、新しいx64構成をプロジェクトに追加すると簡単に発生します。最も簡単な解決策は、win32とx64の両方のプロジェクトで新しいソリューションを作成し、プロジェクトのプロパティでVC++ディレクトリ/ライブラリディレクトリを見て、プロジェクトにあるものが同じであることを確認することです。

関連する問題