stdlib.h: No such file or directory

stdlib.h: No such file or directory

问题

今天在编译Ubuntu上的一个QT项目的时候报错了,错误如下:
stdlib.h: No such file or directory
奇怪的是,之前编译居然一直是成功的,这次失败了,网上找到了解决办法。

问题原因

网上的说法:
这是由于gcc7更新产生的问题。

解决办法

方法一

在QT.pro文件中去除

INCLUDEPATH +=/usr/include

方法二

在QT.pro文件中添加

QMAKE_CFLAGS_ISYSTEM = -I

我用的第一种

至此,问题解决。

参考资料

### 编译 C++ 错误 `/usr/include/c++/9/cstdlib:75: error: stdlib.h: No such file or directory` 的解决方案 当遇到此错误时,通常是因为 GCC 版本更新后对标准库文件的位置进行了调整。具体来说,在较新的 GCC 版本中,某些头文件被移动到了不同的位置以实现更优的性能和兼容性。 #### 方法一:安装缺失的标准库依赖 如果系统缺少必要的开发工具链组件,则可以通过包管理器来修复这个问题: 对于基于 Debian 或 Ubuntu 的 Linux 发行版: ```bash sudo apt-get update && sudo apt-get install build-essential ``` 对于基于 Red Hat 或 CentOS 的发行版: ```bash sudo yum groupinstall "Development Tools" ``` 这些命令将会安装一系列用于软件开发的基础工具集以及相应的头文件和支持库[^1]。 #### 方法二:设置正确的预处理器宏定义 有时该问题是由于编译选项不当引起的。尝试向项目的 Makefile 中添加 `-D_GNU_SOURCE` 宏定义,这有助于确保所有 GNU 扩展功能都可用,从而避免因路径解析失败而导致找不到 `stdlib.h` 文件的情况发生。 编辑项目根目录下的 `Makefile` 文件并找到 CFLAGS 变量所在行,修改如下所示: ```makefile CFLAGS += -D_GNU_SOURCE ``` 保存更改后再试一次构建过程[^2]。 #### 方法三:清理残留配置数据 如果有过多次不同版本 IDE 的安装经历,可能会存在旧版本遗留下来的不一致配置影响当前环境。按照以下步骤操作可能有所帮助: 1. 卸载任何可能导致冲突的应用程序(例如 Arduino IDE)。 2. 删除用户家目录下与目标应用程序有关联的所有缓存文件夹(如 `.arduino`, `.arduino15`),注意这里指的是隐藏文件夹。 3. 重新启动计算机以清除内存中的临时记录。 4. 下载最新稳定版本的目标应用并完成全新安装流程。 5. 配置所需的额外插件或扩展支持之前先验证基础功能是否正常工作。 通过上述措施应该能够有效解决由 `stdlib.h` 头文件丢失引发的一系列链接问题[^3]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值