linux 尝试使用-m32标志编译c文件,但gcc退出并显示错误代码

yr9zkbsy  于 5个月前  发布在  Linux
关注(0)|答案(1)|浏览(52)

我已经为gccg++安装了multilib,两者都在同一个版本上。我还尝试用-L/usr/lib32运行命令,但这没有改变任何东西。
运行gcc -m32 test.c后的错误:
/usr/bin/ld:i386:x86-64输入文件“/usr/lib/gcc/x86_64-linux-gnu/11/crtxOS.o”的体系结构与i386输出不兼容
/usr/bin/ld:i386:输入文件“/usr/lib/gcc/x86_64-linux-gnu/11/crtendS.o”的x86-64体系结构与i386输出不兼容
collect 2:error:ld返回了1个退出状态

gwbalxhn

gwbalxhn1#

我也有同样的问题,但对我来说sudo apt install g++-13-multilib修复了它。你可能需要一些额外的标志除了-m32虽然。
我也(在安装multilib编译器之前)在我的Makefile中尝试:

ifeq ($(BITS),32)
 LOADLIBES += -L/usr/lib/gcc/i686-linux-gnu/13 -L/usr/lib/i386-linux-gnu
 TARGET_MACH ?= --32
 export LDEMULATION := elf_i386
else
 ARCH ?= -march=native
 LOADLIBES += -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/x86_64-linux-gnu
 TARGET_MACH ?= --64
endif

字符串
我不知道上面的哪一个有效果,当然是在我安装了multilib编译器之后。

相关问题