基于i386体系结构的gcc

基于i386体系结构的gcc,gcc,makefile,i386,Gcc,Makefile,I386,我正在尝试将一些.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-i38

我正在尝试将一些.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多库 ia32库


问题出在哪里?

您没有编译。您正在链接已编译的对象文件。看起来send.o被编译为x86_64对象(没有-m32)。无法从32位对象文件链接64位可执行文件


确保所有对象文件都以32位模式编译。

抱歉,我只是链接它们。我也尝试过不使用-m32,它不起作用,我是舒尔,文件是在x86架构上编译的。那么lib.o是ELF32,它与64位输出不兼容。当您链接不使用-m32时,会收到什么错误消息?“file send.o lib.o”的输出是什么?