Clang编译报错找不到string.h及依赖头文件该如何处理
问题解决方法
绝对不要单独下载string.h粘贴到llvm目录下,该操作会带来更多依赖冲突、编译异常甚至运行时崩溃的问题,属于饮鸩止渴的方案。
你遇到的报错本质是系统缺少C标准库(glibc)的架构配套头文件,常见于64位系统编译32位程序、或clang安装后未配套安装标准库开发包的场景,按以下步骤解决即可:
- 安装对应系统的glibc开发包
- Debian/Ubuntu 系列发行版:
编译64位程序执行:
编译32位程序额外执行:sudo apt install libc6-devsudo apt install libc6-dev-i386 - RHEL/CentOS/Fedora 系列发行版:
编译64位程序执行:
编译32位程序执行:sudo dnf install glibc-develsudo dnf install glibc-devel.i686
- 验证修复效果
安装完成后编写最小测试代码验证:
#include <string.h> int main() { return 0; }
用clang编译测试:
clang test.c -o test
无报错输出即代表问题已经修复。
你之前手动指定头文件路径触发新报错,是因为
/usr/include/string.h依赖glibc内部的bits目录下的架构相关头文件,这类文件必须通过官方包完整安装,无法通过单独替换单个头文件补全。
内容的提问来源于stack exchange,提问作者t1fpga1
相关产品推荐
相关产品推荐

