2016-05-02 6 views
0

に行くには、しばらく前に作られ、それが出力ファイルを作成するために、Cygwinの:私はチュートリアルオンラインを以下の午前32ビットファイルから64ビット

ld -s -o testing test.o

を使用することを言います。

その行を実行しようとしたとき、私は

ld: i386 architecture of input file 'test.o' is incompatible with i386:x86-64 output

のエラーを取得しています。

Test.oは、nasm -f elf test.asmによって作成されました。それは悲しいことに64ビット形式で作成することはできません。

これに対処するにはどうすればよいですか?あなたのお時間をありがとう!

答えて

1

32ビットコードで64ビット実行ファイルを作成することはできません。

あなたは32ビットの実行可能ファイルを作成したい場合は、-m elf_i386を使用することができます。これを行う一方で、なぜ、任意のアイデアを `エラー:認識されていないエミュレーションモード:

$ ld -s -o test test.o 
ld: i386 architecture of input file `test.o' is incompatible 
    with i386:x86-64 output 
$ ld -s -o test test.o -m elf_i386 
$ 
+0

私は' LDを受けましたか?私は完全にLinuxに慣れているので、すべての助けが大いに受け入れられます。 –

+0

@BeccaBohemリンカーによってサポートされているエミュレーションモードを表示するには 'ld -V'を使います。 – Michael

+0

どのようにtest.oを構築しましたか? – matzeri

関連する問題