• 締切済み

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

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

みんなの回答

  • hidebun
  • ベストアンサー率50% (92/181)
回答No.1

[ビルド]メニューの下に、構成マネージャというのがないでしょうか。 そこを'x86'に設定すれば、32bitでビルドされるのではないかと。

関連するQ&A

  • fatal error LNK1112

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

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

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

  • 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ビットのコードを吐くものに 設定されていると思います。

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

  • 32bitでコンパイルするには

    お世話になっております。 CentOSの64ビットマシンを使っています。 C言語の簡単なサンプルとして、ポインタ変数の長さを表示するプログラム(sizeof(ポンタ変数)をprintf)を作りました。 これをコンパイルして実行すると8と表示されますので、64bitとアプリケーションとしてコンパイルされたのだろうと思います。 次に32Bitアプリケーションとしてコンパイルするために-m32オプションを付けてコンパイルしたところ、以下のとおりエラーが出てしまい困っております。 gcc -m32 -o sample sample.c /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.4.7/libgcc_s.so when searching for -lgcc_s /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.4.7/libgcc_s.so when searching for -lgcc_s /usr/bin/ld: cannot find -lgcc_s collect2: ld returned 1 exit status 解決方法について教えていただければ幸いです。 コンパイラは、gcc-4.4.7-3.el6.x86_64をインストールしています。 よろしくお願いします。

  • コンパイル環境:

    コンパイル環境:  Windows XPで、CD版プロフェッショナルVC++ 6.0 に Vs6sp6(Downloadしたもの)をパッチ。 プロジェクトはMFC AppWizard(exe)、SDI(S)、日本語、後はデフォルトです。 エラー内容:  プロジェクトの設定のC/C++タブのプリプロセッサの定義で、  _MBCSを _UNICODE にすると下記のエラーが出ます。  マイクロソフトでは2005年版以降のエラー処理は書いて有りますが、  VC++ 6.0が無くて良くわかりません。教えて下さい。 msvcrtd.lib(crtexew.obj) : error LNK2001: 外部シンボル "_WinMain@16" は未解決です。 Debug/Jptest.exe : error LNK1120: 外部参照 1 が未解決です。 link.exe の実行エラー

  • VC++2005で、64bitのネイティブコードにコンパイルするには?

    VC++2005で、64bitのネイティブコードにコンパイルするには、clのオプションに何を付ければよいでしょうか? また、DLLやEXEを見てこれは64btネイティブと判定する方法はありますか?

  • コンパイルエラー

    VCでファイル(.c)をコンパイルしたところ 以下のエラーが出てしまいました。 error LNK2019: 未解決の外部シンボル _sqlcxt が関数 _xxxxxxxx で参照されました。 なんかの設定不足でしょうか? お分かりの方がおりましたら、よろしくお願いします。

専門家に質問してみよう