3

-m32引数を使用してコンパイルすると、どうしてこのエラーが発生するのですか?

認識されないエミュレーションモード:32

x86_64マシンでg++を使用してコンパイルしています。これは1つのプロジェクトで発生しますが、他のプロジェクトでは発生しません...ヒントはありますか?

注:私はEclipse CDTを使用しているので、おそらくこれはIDE固有のゴチャですか?

言い換えられた質問

おそらく、より良い質問は次のようになります。x86_64マシンで実行しているときに、Eclipseでx86バイナリを構築するための最良の方法は何ですか。

4

2 に答える 2

4

Eclipse では、コンパイラ オプションで -m32 を指定する場合、その他のリンカー オプションで -m32 を指定する必要があるようです。

存在しないライブラリ パスを参照すると、「認識されないエミュレーション モード: 32」というエラー メッセージが表示されます。これは奇妙なことです。

于 2009-03-19T21:39:15.993 に答える
3

-m1つのプロジェクトでは、誤ってリンカーにを渡しています。GNUリンカ(ld)は、エミュレーションモードを指定するための-mオプションをサポートしています。エミュレーションは、リンカースクリプト、出力オブジェクトファイル形式、および開始アドレスなどのパラメーターで構成されます。-mLDFLAGSではなく、CXXFLAGS(C ++コンパイラー・フラグ)またはCFLAGS(cコンパイラー・フラグ)に配置するように注意してください。

たとえば、myldは、ELFバイナリとa.outバイナリをそれぞれ生成するために、エミュレーションモードelf_i386とi386linuxをサポートしています。

于 2009-03-19T20:10:40.607 に答える