• 締切済み

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」

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

既にコンパイル済みの.LIBをリンクしてませんか?それが32bit用になってませんか? ちなみに、x86は32bit用ですから、 2.はむしろ逆効果です。

mynhornym
質問者

お礼

回答ありがとうございます。 質問返しになって申し訳ないのですが、もしその.libが32bit用だった場合、 それの導入時点で間違ってしまったということなのでしょうか・・・ なるほど、2は逆効果だったんですね。

mynhornym
質問者

補足

記事編集の方法がわからないので、ここに書かせていただきます。 「C言語何でも質問掲示板」 http://dixq.net/forum/viewtopic.php?f=3&t=9969 にて、同じ質問をさせていただいてます。 とあることから、マルチポストしてしまいました。 ルール違反をしたことにより、ご迷惑をかけて申し訳ありません。 今後はこのようなことの無いようにします。

関連するQ&A

  • fatal error LNK1112

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

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

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

  • 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)」に強制的にインストールしてしまうことです。

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

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

  • 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でビルドができるのでしょうか。 原因や対処法をご存知の方がいましたら、ご教授ください。

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

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

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

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

  • VC++でのリンクエラー [error LNK2005]

    VC++でMFCを使用してダイアログベースのEXEを 作成しています。 以下のクラスのメンバ関数などを使用して、色の操作をしています。 CDC::SetBkColor() CDC::SetTextColor() ビルド時、以下のリンクエラーとなりました。 ---------------------------------------------- nafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) はすでに LIBCMT.lib(delete.obj) で 定義されています Release/MenueTest.exe : fatal error LNK1169: 1 つ 以上の複数回定義されているシンボルが見つかりました link.exe の実行エラー ---------------------------------------------- MFC と C(?)のライブラリで delete()関数が競合しているようですが、これを回避する方法をご存知の方、ご教授願います。 <環境> OS:Windows2000 VC++6.0 <備考> リンクエラーになるのは以下の組み合わせです。 「MFCをスタティックリンクする+リリース版」 MFCをスタティックリンクしてもデバッグ版のビルドだとエラーになりません。 また、MFCをスタティックリンクしない場合もエラーにはなりません。 ただし、リンクエラーにならなかった場合、どちらのオブジェクトの delete()関数が呼ばれるか不明で、それが正しいのかも心配です。

  • LNK2005

    Visual C++ Version5.0を使っています。 OSはWindows XPです。 translator.cpp parser.cpp scanner.h という三つのファイルをビルドしようとすると translator.obj : error LNK2005: "int error_flag" (?error_flag@@3HA) は すでに parser.obj で定義されています というエラーがそれぞれの変数ごとに20個出て、最後に ebug/COSC47101.exe : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました link.exe の実行エラー と表示されます。それらの変数はすべて"scanner.h"で定義されており、 二つの.cppファイルがincludeしているのが原因だということは分かっています。 しかし、どうやって解決すればよいのでしょうか? 過去ログを参考にして二つの.cppファイルの中で #if !defined(HOGE_X) #define HOGE_X #endif //include files #include "scanner.h" とやっても全然駄目です。 どうか解決するまで手取り足取り教えてください。 お願いします。m(__)m

  • VisualStudio2008でのエラー

    VisualStudio2008でのコンパイルエラーの原因が分かりません。 fatal error LNK1318:予期しないPDBエラー。ACCESS_DENIED(15) 'c:¥※※¥Bin¥※※.pdb' プロジェクトをビルドすると上のエラーが出ます。 プロパティの設定に問題があるのでしょうか? 急ぎで解決しなくてはならないのですが 当方初心者の為何が悪いのか全く分からず困っております。 何が原因でどのようにすればエラーが消えるのでしょうか。 ちなみに、pdbファイルを削除したりVS2008を再起動させたりしましたがだめでした。 詳しい方どうかお助けください。