【问题标题】:using gcc -m32 flag cannot find -lgcc and -lgcc_s使用 gcc -m32 标志找不到 -lgcc 和 -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
  • 注:英语也不是来自美国

标签: linux gcc assembly 32bit-64bit nasm


【解决方案1】:

需要安装gcc-multilib

【讨论】:

  • 至少最近在 Debian 上,只安装必要的库就足够了(而不是 gcc-multilib 包含的一大堆多架构软件包。所以像 lib32gcc-8-dev (在当前的 Debian Buster)足以(它选择额外的子包)让基本程序与 -m32 一起工作。
猜你喜欢
  • 2023-03-21
  • 2021-01-04
  • 2011-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-06
  • 1970-01-01
  • 2011-05-31
相关资源
最近更新 更多