- ベストアンサー
Win7 64bit のPCが'X86'と誤認識?
Win7 64bit VC++ 2010 Express で、 fatal error LNK1112: モジュールのコンピューターの種類 'x64' は対象コンピューターの種類 'X86' と競合しています。 というエラーが出てコンパイルが最後まで行きません。 もちろんライブラリはすべて 64ビット版 を指定したつもりです。 エラーメッセージから見ると、対象コンピュータが32ビットとリンカーに誤認識されているようなのですが、誤解が解ければ解決する気がしています。 が、その修正のやり方がわかりません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
環境があるわけではないので適当に検索かけた結果だけ張っておきます 後はご自分で確認してください(以下は2008の場合らしいですが多分同じでしょう) 1.ツール→オプションで出てくるウィンドウ左下の「すべての設定を表示(A)」をチェック 2.同オプション画面のプロジェクトおよびソリューション→全般にある「ビルド構成の詳細を表示(I)」にチェック! 3.ソリューションのプロパティに「構成プロパティ」「構成マネージャ」が出てくる
その他の回答 (2)
- Wr5
- ベストアンサー率53% (2173/4061)
「VC++ 2010 Express 64Bit」で検索すると…いくつか見つかりますね。
お礼
回答ありがとうございます。 この検索結果は見ましたが、記載された記事と同じに設定できなくて、質問しました。 そんな中、先ほど、http://d.hatena.ne.jp/torutk/20100927/p1 に ーーーー Visual C++ 2010 Expressは32bitコンパイルのみ提供されていますが、別途Windows SDKを追加することで、64bitコンパイルができるようになります。 ーーーーー の記載を発見し、早速 Windows SDKを追加したところ、記事に記載された操作 新規プロジェクト(Win32コンソール)を作成 「構成マネージャ」の[アクティブソリューションプラットフォーム]欄をドロップダウン [Win32]を[x64]に変更 ができるようになりました。 ありがとうございました。
- koi1234
- ベストアンサー率53% (1866/3459)
>ライブラリはすべて 64ビット版 を指定 これはいいと思いますが コンパイルオプションもターケッドを64ビットにしてますよね? コンパイルするPCが64ビットだから64ビットになるわけではありませんので念のため コマンドラインオプションとしては /MACHINE:X64 になっていなければいけません どこかに32ビット指定のものが混ざっているのは間違いないと思います
お礼
回答ありがとうございます。 >コンパイルするPCが64ビットだから64ビットになるわけではありませんので念のため なるほど。自動的に64ビットと認識されるのではなく、どこかで64ビットだと設定しなければいけないのですね。 回答を読んで、設定方法を探したのですが、探し方が悪いのだと思いますが、見つかりません。 すいませんが、VC++ 2010 Express のどのメニューのどのボタンで設定するのか今一度教えていただきたいです。 よろしくお願いします。
お礼
更なる回答ありがとうございます。 >1.ツール→オプションで出てくるウィンドウ左下の「すべての設定を表示(A)」をチェック ここでつまずきました。 で、http://d.hatena.ne.jp/torutk/20100927/p1 に以下の記述を発見しました。 ーーーーーーーーーーー Visual C++ 2010 Expressは32bitコンパイルのみ提供されていますが、別途Windows SDKを追加することで、64bitコンパイルができるようになります。 ーーーーーーーーーーー ということで、Windows SDKを追加し、 新規プロジェクト(Win32コンソール)を作成 「構成マネージャ」の[アクティブソリューションプラットフォーム]欄をドロップダウン [Win32]を[x64]に変更 でうまくいきました。 ありがとうございました。