rub*_*ner 3 64-bit compiling 32-bit gcc
我正在学习汇编,我需要将一段 C 代码编译成一个 32 位可执行文件。问题是我不断收到此错误。我试过安装 gcc-multilib 和 g++-lib,但没有帮助。有谁知道可能会发生什么?
> gcc main.s -m32 -o main
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc.a when searching for -lgcc
/usr/bin/ld: cannot find -lgcc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
在 Ubuntu 16.10 上使用 gcc 版本 4.8.5 (Ubuntu 4.8.5-4ubuntu4)。
更新:添加了编译命令。我事先编译了 .s 文件,gcc -m32 -S main.c
因为我需要查看汇编代码。
该gcc-multilib
软件包仅提供对当前默认编译器的 32 位支持。
由于您使用的是非默认编译器(gcc-4.8
相对于系统的默认编译器gcc-6
),您需要明确安装底层版本特定的 multilib 包,例如
sudo apt install gcc-4.8-multilib
Run Code Online (Sandbox Code Playgroud)
(或来自您最喜欢的包管理器的等效项)。
归档时间: |
|
查看次数: |
15097 次 |
最近记录: |