关键词

64位linux 编译c提示gnu/stubs-32.h:No such file or directory的

遇到编译C程序时提示“gnu/stubs-32.h: No such file or directory”错误是因为缺少32位的库文件,而现在大多数64位的Linux系统都不自带32位的库文件,需要手动安装。下面是完整的解决方法攻略:

问题描述

编译C程序时提示“gnu/stubs-32.h: No such file or directory”错误。

解决方法

方法一:安装gcc-multilib多架构支持

sudo apt-get install gcc-multilib

在Ubuntu、Debian等Linux系统上,可以通过安装gcc-multilib多架构支持来解决此问题。如果你使用的是其他发行版,也可以尝试通过对应的包管理工具进行安装。

方法二:手动安装32位库文件

如果使用方法一仍无法解决问题,那么可以尝试手动安装32位库文件。以下是在Ubuntu 20.04上的操作示例:

  1. 安装GCC的多架构版本

shell
sudo apt-get install gcc-multilib

  1. 安装32位库文件

shell
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386

这里安装了libc6:i386、libncurses5:i386和libstdc++6:i386三个32位库文件。

  1. 添加32位目录到动态链接库搜索路径中

shell
sudo nano /etc/ld.so.conf.d/multiarch.conf

在文件中输入以下内容并保存:

/usr/local/lib32
/lib32
/usr/lib32
/usr/lib/i386-linux-gnu

这里添加了/usr/lib/i386-linux-gnu作为新的32位目录。

  1. 运行ldconfig更新动态链接库

shell
sudo ldconfig

至此,解决“gnu/stubs-32.h: No such file or directory”错误的方法已经介绍完毕。

注意:如果你的系统是CentOS等其他Linux发行版,以上步骤可能会不一样。具体操作建议参考对应系统的官方文档,或通过其他方式安装32位库文件。

结论

在编译C程序时出现“gnu/stubs-32.h: No such file or directory”错误,可能是因为缺少32位的库文件。通过安装gcc-multilib或手动安装32位库文件并添加动态链接库搜索路径,可以解决此问题。

本文链接:http://task.lmcjl.com/news/7674.html

展开阅读全文