2011-01-18 2 views
1

私はこの同じ基本的な質問を昨日尋ねましたが、問題の明確なアイデアを得るのに十分遠かったわけではありませんでした。Visual Studio 2008の32ビットプログラムをコンパイルしてリンクします

\デバッグ\ HotSync.obj::。致命的なエラーLNK1112:ターゲット・マシン・タイプとモジュールのマシンタイプ「x64の」葛藤「X86」

私が仮定基本的に、これは私のアプリを構築するとき、私は今、取得エラーですつまり、64ビットのオブジェクトモジュールをコンパイルしてから、32ビットの実行可能ファイルをリンクしようとしています。これはコンパイラ自体の問題か、コンパイラに与えられたオプションの問題ですか?このプロジェクトは以前はVC++ 2003プロジェクトだったので、常に32ビットとなっています。

私が見つけることができるcl.exeの唯一のバージョンは、VC \ binのamd64サブディレクトリとx86-amd64サブディレクトリにあります。これらのパスの1つを "VC++ Directories"リストに手動で追加する必要がありますが、どちらの場合も結果は同じです。

私のホストPCはWindows 7 64ビット版のAMDですが、私はまだXP上で動作するプログラムを作ることができます。誰でもこれを行う方法を知っていますか? Win7のx64システム上

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\ 

答えて

2

のVisual Studio 2008のデフォルトのインストールでは、中のx86 cl.exeと関連するコンパイラのバイナリを入れている必要があります。

cl.exe(つまり、amd64またはx86_amd64ディレクトリの「上」)がない場合は、Visual Studioの再インストールを検討することをお勧めします。

amd64ディレクトリのコンパイラは、x64システムをターゲットとしており、x64システムで動作するようにビルドされています。 x86_amd64ディレクトリのコンパイラは、x64システムも対象としますが、それ自体はx86バイナリです(つまり、x86 32ビットシステムからx64にクロスコンパイルされます)。

ます。また、短いカットのVisual Studio 2008のプログラムグループ(または何でもそれがwin7のに呼ばれるかもしれない)を持っている必要があります。

"Microsoft Visual Studio 2008" | "Visual Studio Tools" | "Visual Studio 2008 Command Prompt" 

最初に言うコマンドウィンドウを開くように

Setting environment for using Microsoft Visual Studio 2008 x86 tools. 

そして、オプションなしでそこclコマンドを実行すると、のような何かを言う必要があります。

のMicrosoft(R)32ビットのC/C++をコンパイラのバージョン15.00.21022.08 for 80x86の最適化

また、もしあなたのためのものがなければ、再インストールが必要です。

また、ビルドに関連するすべてのプロジェクトのプロジェクト構成がx64ではなくWin32に設定されていることを確認してください。

+0

これは、私がVS 2008の "Standard"を "Pro"ではなく持っているという事実によるものではないが、私は64ビットWin7 Professional 32ビットアプリケーションを作成するためのコンポーネントをインストールするのは面倒ではありません。この製品のセットアップにはほとんどカスタマイズオプションがないため、実際に何をしているのかを正確に伝えることは困難です。私はそれを再インストールし、何が起こるかを見てみましょう。 – gordonwd

+0

@gordonwdニュースはありますか? – alcor

+0

申し訳ありませんが、最近の私の記憶はこれまでに戻っていません。それ以来私はそれを使っていたので、私は明らかにこの問題を解決しました。 – gordonwd

1

明らかに、「問題」は、私が使用することを計画しているすべてのものなので、C++だけをインストールしたことです。しかし何らかの理由で私が必要とするcl.exeは、C#のインストールの一部としてインストールされます。だからfiggerに行く!フル・フル・インストールをしないことで乱雑さを救うために私を奉仕します。

+0

これは本当に驚くべきことですが、いつでも私はVSをインストールしますが、.NETのすべてのものもインストールするので、これに遭遇することはありません。次回はインストールをして、私はC++だけを覚えて、何が得られるかを見てみましょう(しかし、正直言ってこれまでにはこれをすべて忘れてしまうでしょう)。 –

+0

ここに同じ問題があります。 VC \ binにx86 cl.exeが存在しませんでした(VC \ bin \ amd64およびVC \ bin \ x86_amd64ディレクトリにあるamd64のバージョン)。私はまた、C++だけをインストールしました。 C#を追加した後、x86のcl.exeが追加されました。 – math

関連する問題