0

いくつかの .o ファイルを次のようにリンクしようとしています:

gcc -m32 send.o lib.o -o send

そして私は得る:

/usr/bin/ld: i386:x86-64 architecture of input file `send.o' is incompatible with i386 output
/usr/bin/ld: final link failed: Invalid operation
collect2: ld returned 1 exit status

libc6-i386 gcc-multilib ia32-lib をインストールしました

どこに問題があるのでしょうか?

4

1 に答える 1

2

あなたはコンパイルしていません。既にコンパイル済みのオブジェクト ファイルをリンクしています。send.o が x86_64 オブジェクト (-m32 なし) としてコンパイルされたようです。32 ビットのオブジェクト ファイルから 64 ビットの実行可能ファイルをリンクすることはできません。

すべてのオブジェクト ファイルが 32 ビット モードでコンパイルされていることを確認します。

于 2012-03-11T22:06:44.753 に答える