• ベストアンサー

Win7 64bit のPCが'X86'と誤認識?

Win7 64bit VC++ 2010 Express で、 fatal error LNK1112: モジュールのコンピューターの種類 'x64' は対象コンピューターの種類 'X86' と競合しています。 というエラーが出てコンパイルが最後まで行きません。 もちろんライブラリはすべて 64ビット版 を指定したつもりです。 エラーメッセージから見ると、対象コンピュータが32ビットとリンカーに誤認識されているようなのですが、誤解が解ければ解決する気がしています。 が、その修正のやり方がわかりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • koi1234
  • ベストアンサー率53% (1866/3459)
回答No.2

環境があるわけではないので適当に検索かけた結果だけ張っておきます 後はご自分で確認してください(以下は2008の場合らしいですが多分同じでしょう) 1.ツール→オプションで出てくるウィンドウ左下の「すべての設定を表示(A)」をチェック 2.同オプション画面のプロジェクトおよびソリューション→全般にある「ビルド構成の詳細を表示(I)」にチェック! 3.ソリューションのプロパティに「構成プロパティ」「構成マネージャ」が出てくる

iruiru298
質問者

お礼

更なる回答ありがとうございます。 >1.ツール→オプションで出てくるウィンドウ左下の「すべての設定を表示(A)」をチェック ここでつまずきました。 で、http://d.hatena.ne.jp/torutk/20100927/p1 に以下の記述を発見しました。 ーーーーーーーーーーー Visual C++ 2010 Expressは32bitコンパイルのみ提供されていますが、別途Windows SDKを追加することで、64bitコンパイルができるようになります。 ーーーーーーーーーーー ということで、Windows SDKを追加し、 新規プロジェクト(Win32コンソール)を作成 「構成マネージャ」の[アクティブソリューションプラットフォーム]欄をドロップダウン  [Win32]を[x64]に変更 でうまくいきました。 ありがとうございました。

その他の回答 (2)

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.3

「VC++ 2010 Express 64Bit」で検索すると…いくつか見つかりますね。

iruiru298
質問者

お礼

回答ありがとうございます。 この検索結果は見ましたが、記載された記事と同じに設定できなくて、質問しました。 そんな中、先ほど、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)
回答No.1

>ライブラリはすべて 64ビット版 を指定 これはいいと思いますが コンパイルオプションもターケッドを64ビットにしてますよね? コンパイルするPCが64ビットだから64ビットになるわけではありませんので念のため コマンドラインオプションとしては  /MACHINE:X64 になっていなければいけません どこかに32ビット指定のものが混ざっているのは間違いないと思います

iruiru298
質問者

お礼

回答ありがとうございます。 >コンパイルするPCが64ビットだから64ビットになるわけではありませんので念のため なるほど。自動的に64ビットと認識されるのではなく、どこかで64ビットだと設定しなければいけないのですね。 回答を読んで、設定方法を探したのですが、探し方が悪いのだと思いますが、見つかりません。 すいませんが、VC++ 2010 Express のどのメニューのどのボタンで設定するのか今一度教えていただきたいです。 よろしくお願いします。

関連するQ&A

  • 64bit環境で32bitでコンパイルするオプションはあるのでしょうか?

    WindowsXP x64の環境でVC++2005でコンパイルすると64bitを生成しますが、リンクするモジュールが32bitなので、エラーになります。 fatal error LNK1112: モジュールのコンピュータの種類 ‘X86′ は対象コンピュータの種類 ‘x64′ と競合しています。 強制的に32bitでコンパイルするオプションはあるのでしょうか?

  • fatal error LNK1112

    fatal error LNK1112: モジュールのコンピューターの種類 'X86' は対象コンピューターの種類 'x64' と競合しています。 というエラーが出てコンパイルが出来ないのですが、どうすればコンパイル出来るでしょうか 当方の環境は以下のとおりです win7 64bit VC++ 2010 Express

  • fatal error LNK1112

    ビルドをすると以下のようなエラーがでてきてしまいます。 「fatal error LNK1112: モジュールのコンピュータの種類 'X86' は対象コンピュータの種類 'x64' と競合しています。」 いろいろ検索してみたのですが、解決方法がわかりません。 因みに、64bitでコンパイルしたいです。 力になってもらえるとうれしいです、よろしくお願いします。 既に試した方法を書きます。 1.ttp://triple-tiara.blog.ocn.ne.jp/memo/2010/03/visualstudio200.html   に書かれている、「vcvarsamd64.bat」を叩いてビルド。   残念ながら効果なしでした。 2.様々な所に書かれている「対象コンピュータを MachineX86 (/MACHINE:X86) に変更」。   「fatal error LNK1112: モジュールのコンピュータの種類 'x64' は対象コンピュータの種類 'X86' と競合しています。」   と、新しいエラーがでてきます。   どちらのエラーも出るということは、32bitと64bitの両方を持っているのかな・・・ 【環境】下記の通りです Windows7 64bit Microsoft Visual Studio 2008  言語は「C++」と「CUDA」

  • VISTA64bit,VS2005/C++で対象コンピュータを「x64

    VISTA64bit,VS2005/C++で対象コンピュータを「x64」にして簡単なプログラムをビルドすると以下のエラーが出てしまいます。 「1>.\Debug\stdafx.obj : fatal error LNK1112: モジュールのコンピュータの種類 'X86' は対象コンピュータの種類 'x64' と競合しています。」 OS   :VISTA Ultimate64bit CPU   :Xeon5080(64bit), 開発環境:VS2005 Team Edition for software developers完全インストール ◎OSもCPUも64bit対応なのに何故かモジュールのコンピュータは32bitでビルドしてしまいます。解決方法はありますでしょうか? 追記:気になることは、VS2005が普通の「Program files」のフォルダではなく「Program Files(x86)」に強制的にインストールしてしまうことです。

  • express editionの64bitアプリ

    Visual Studio 2008 express edition OSはwindows7(64bit)を使用しています。 現在開発しているツールに大容量のデータを読み込ませるため、 64bitでツールを作りたいと思っています。 構成マネージャ > アクティブソリューションプラットフォーム でx64を選択したのですが、 2Gbyte届かない程度のデータを読み込んだところで、限界となってしまいました。 リンカ > 詳細 > 対象コンピュータ が MachineX86(/MACHINE:X86) となっているのがダメなのかと思い、 MachineX64(/MACHINE:X64) に変えてみたのですが、今度は以下のようなエラーが出てしまいました。 fatal error LNK1112: モジュールのコンピュータの種類 'X86' は対象コンピュータの種類 'x64' と競合しています。 現在の状態からどのようにすれば、64bitでビルドができるのでしょうか。 原因や対処法をご存知の方がいましたら、ご教授ください。

  • 【VC++】'X86' と 'x64'が競合

    はじめまして。 初めて質問させていただきます。 現在、Visual c++で作業をしていますが、エラーが発生し、困り果ててしまっています。。。 当方、プログラミングの経験は浅く、特にC++は最近始めました。 以下に、エラーメッセージ、環境を記載します。 ○エラーメッセージ LNK1112: モジュールのコンピューターの種類 'X86' は対象コンピューターの種類 'x64' と競合しています。 ○環境 OS : Windows 7 Professional (64bit) Visual C++ Express 2010 OpenCV2.3.1 たくさん検索し、過去にも類似した事例がありましたが、解決には至りませんでした。。。 色々検索した限りでは、OpenCVのlibが関連ありそうなのですが、、、 私の勉強不足により、お手数をお掛けし申し訳ありませんが、 ご教授いただけないでしょうか。 よろしくお願い致します。

  • 'X86' は対象コンピュータの種類 'x64' と競合しています

    visualStudio2005でx64用のモジュールを作成したいと思っています。 環境はXPの32bitで、行っているのですが、下記のようなメッセージが出て解決できません。 「'X86' は対象コンピュータの種類 'x64' と競合しています」 何か方法はないでしょうか???

  • ライブラリファイルのリンク (リリースバージョン時)

    VisualC++ 2005 Express Editionでライブラリファイル(.lib)をリリースバージョンでビルトし、違うプログラム(デバックバージョン)でライブラリファイルをリンクしたとき 1>コンパイルしています... 1>main.c 1>リンクしています... 1>CheckMemory.lib(check_memory.obj) : MSIL .netmodule または /GL を伴ってコンパイルされたモジュールが見つかりました。/LTCG を使用して再開始してください。リンカのパフォーマンスを向上させるためには、コマンドラインに /LTCG を追加してください。 1>LINK : warning LNK4075: /INCREMENTAL は /LTCG の指定によって無視されます。 1>LINK : warning LNK4098: defaultlib 'MSVCRT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。 と出るのですが、これはどうゆうことなのでしょうか? 分かる方いらっしゃいますか?お願いします。 ちなみにライブラリファイルは簡易メモリチェックプロブラムでデバック時のみ使用したいと考えているプログラムです。 使用言語はc言語です。 文章下手ですみません^^;

  • 32bitで作ったアプリケーションの64bit環境へのコンパイル

    32bitで作ったアプリケーションの64bit環境へのコンパイル 現在、32ビット環境で作ってWindowsXPで正常に動作しているアプリケーションを、 Windows7などの64ビット環境でWOW64を介せずに起動できるように、x64用に コンパイルしようと考えています。 今まではVC++2008EEとWindowsSDK,DirectX9を使って組んでいましたが、 ExpressEditionだとx64向けのコンパイルができないと言うことで、2010EEと WindowsSDK7.1をインストールし、その後構成マネージャで設定をx64にして XP32bit上でコンパイルしました。ソースコードは全く手を加えない状態だったので、 何かエラー・警告があるかと思いましたが、警告も出ずコンパイルは通り、 64ビット環境で起動することも出来ました。 しかし、起動した直後に処理が非常に重くなり、FPSも10~20程度ではないかと 言うほどに動作がもっさりとしてしまいます。 起動しないわけではないし、動き自体も低速ながら、期待されたもしくは XP32bitで起動したときと同じように動いているように見受けられます。 よく見るポインタの長さに関しての問題等も、そもそもあった場合エラーが出て 落ちてしまうのではないかと思います。現状ソースを修正するにしても、 エラーも何も出ていないためどこにどう手を加えたらいいのか分かりません。 なにか原因となるものに心当たりがあればご教授いただけると幸いです。 使用ソフトは上記のようにVC++2008と2010、WinSDK,DirectXともにSDKは (おそらく)最新版でリンクするライブラリのパスにはx64のフォルダを指定、 プリプロセッサの設定で_WIN64を定義しています。 コンパイラも、起動出来てはいるので64ビットのコードを吐くものに 設定されていると思います。

  • VC++ 2005 Express Edition 設定のエラー

    こんにちは。 おそらく設定のエラーでしょうが、解決策がまったく見つからないので質問してみました。 Visual C++ 2005 Express Edition(VCEE) を使ってみようと思ったので、 VCEEをダウンロードして、インストールしました。 その後、Win32アプリケーションを作成しようと思い、 PSDK-x86をダウンロードしてインストールしました。 そして、VCEEで、 「ツール」から「オプション」、「プロジェクトおよびソリューション」の「VC++ ディレクトリ」で 実行可能ファイル・インクルードファイル・ライブラリファイルで設定をし、corewin_express.vspropsファイルも変更して、これでできる、と思ったのですが、 新規作成でWin32アプリケーションが作れませんし、 昔作っていたものをコンパイルしようと思ったら「コンピューターの競合」のエラーがでます。 いろいろネットを探したのですが、見つかりませんでした。 だれか知っているでしょうか。 長文失礼いたします。