使用 gcc -m32 标志找不到 -lgcc 和 -lgcc_s
Posted
技术标签:
【中文标题】使用 gcc -m32 标志找不到 -lgcc 和 -lgcc_s【英文标题】:using gcc -m32 flag cannot find -lgcc and -lgcc_s 【发布时间】:2014-04-13 04:37:08 【问题描述】:我正在尝试在我的 64 位 Linux 上编译 32 位汇编代码 (NASM),但我不能,我已经尝试过其他有关它的教程,并且我安装了 ia32-libs...
当我尝试运行它时:
gcc asm1.o -o asm1
文件输入'asm1.o'的i386与输出i386:x86-64不兼容
当我尝试运行它时:
gcc -m32 asm1.o -o asm1
/usr/bin/ld: 找不到 -lgcc /usr/bin/ld: 找不到 -lgcc_s collect2: error: ld 返回 1 个退出状态
感谢您的帮助。
OBS:对不起我的英语,我不是来自美国。
【问题讨论】:
你试过为它安装开发包吗? 您使用的是哪个 Linux 发行版? 是的,我做到了。我已经安装了:build-essential、libc6-dev-i386、libc6-dev 和 ia32-libs。我正在使用 Linux Mint 16 x64。 @dxhj 你可能还需要安装gcc-multilib
。
注:英语也不是来自美国
【参考方案1】:
需要安装gcc-multilib。
【讨论】:
至少最近在 Debian 上,只安装必要的库就足够了(而不是gcc-multilib
包含的一大堆多架构软件包。所以像 lib32gcc-8-dev
(在当前的 Debian Buster)足以(它选择额外的子包)让基本程序与 -m32
一起工作。以上是关于使用 gcc -m32 标志找不到 -lgcc 和 -lgcc_s的主要内容,如果未能解决你的问题,请参考以下文章
arm-none-eabi-gcc提示找不到,但是明明有这个文件的
如何使用 gnu gcc 标志 -mpc32、-mpc64 和 -mpc80?