安装gcc-multilib后仍无法用-m32编译C程序:找不到-lgcc
Ubuntu x86_64虚拟机中-m32编译失败的解决方法
问题概况
在Windows系统的Ubuntu x86_64虚拟机环境中,已安装gcc-multilib,但使用-m32选项编译C程序时失败。
已安装的GCC相关包(执行dpkg -l | grep gcc输出)
ii gcc 4:7.4.0-1ubuntu2.3 amd64 GNU C compiler ii gcc-11-base:amd64 11.1.0-1ubuntu1~18.04.1 amd64 GCC, the GNU Compiler Collection (base package) ii gcc-7 7.5.0-3ubuntu1~18.04 amd64 GNU C compiler ii gcc-7-base:amd64 7.5.0-3ubuntu1~18.04 amd64 GCC, the GNU Compiler Collection (base package) ii gcc-7-multilib 7.5.0-3ubuntu1~18.04 amd64 GNU C compiler (multilib support) ii gcc-8-base:amd64 8.4.0-1ubuntu1~18.04 amd64 GCC, the GNU Compiler Collection (base package) ii gcc-9 9.4.0-1ubuntu1~18.04 amd64 GNU C compiler ii gcc-9-base:amd64 9.4.0-1ubuntu1~18.04 amd64 GCC, the GNU Compiler Collection (base package) ii gcc-multilib 4:7.4.0-1ubuntu2.3 amd64 GNU C compiler (multilib files) ii lib32gcc-7-dev 7.5.0-3ubuntu1~18.04 amd64 GCC support library (32 bit development files) ii lib32gcc-s1 11.1.0-1ubuntu1~18.04.1 amd64 GCC support library (32 bit Version) ii lib32gcc1 1:11.1.0-1ubuntu1~18.04.1 amd64 GCC support library (dependency package, 32bit) ii libgcc-7-dev:amd64 7.5.0-3ubuntu1~18.04 amd64 GCC support library (development files) ii libgcc-9-dev:amd64 9.4.0-1ubuntu1~18.04 amd64 GCC support library (development files) ii libgcc-s1:amd64 11.1.0-1ubuntu1~18.04.1 amd64 GCC support library ii libgcc1 1:11.1.0-1ubuntu1~18.04.1 amd64 GCC support library (dependency package) ii libx32gcc-7-dev 7.5.0-3ubuntu1~18.04 amd64 GCC support library (x32 development files) ii libx32gcc-s1 11.1.0-1ubuntu1~18.04.1 amd64 GCC support library (x32) ii libx32gcc1 1:11.1.0-1ubuntu1~18.04.1 amd64 GCC support library (x32)
编译错误信息
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/9/libgcc.a when searching for -lgcc /usr/bin/ld: cannot find -lgcc /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/9/libgcc.a when searching for -lgcc /usr/bin/ld: cannot find -lgcc
解决步骤
从错误路径能看出,当前系统默认使用的是gcc-9,但仅安装了gcc-7的multilib支持包,缺少gcc-9对应的32位编译组件,导致链接器找不到适配的libgcc库。
执行以下命令安装gcc-9的multilib组件及32位开发库:
sudo apt update sudo apt install gcc-9-multilib lib32gcc-9-dev
安装完成后,重新使用-m32选项编译C程序即可。
内容的提问来源于stack exchange,提问作者tanmay196
相关产品推荐
相关产品推荐

