fatal error: malformed or corrupted AST file: 'Unable to load module Darwin.pcm 问题解决

本文解决在使用Xcode6运行带有第三方库时出现的致命错误,通过删除继承数据并重新编译来解决AST文件加载失败的问题。

原帖:http://blog.youkuaiyun.com/langeldep/article/details/38928303

xcode 6 运行带有第三方库的时候报错

fatal error: malformed or corrupted AST file: 'Unable to load module "/Users/gapple/Library/Developer/Xcode/DerivedData/ModuleCache/PNBJ8YUNV3UC/Darwin.pcm": module file not found'  
note: after modifying system headers, please delete the module cache at '/Users/gapple/Library/Developer/Xcode/DerivedData/ModuleCache/PNBJ8YUNV3UC'  
1 error generated.  

解决办法为:

点击XCODE的菜单Window,然后选择Organizer,在弹出的对话框的最上面选择Projects, 如下对话框。


然后选择右边的 Delete 按钮,删除继承的数据,在编译即可。

你遇到的错误: ``` fatal error: 'clang/AST/TranslationUnit.h' file not found ``` 是典型的 **头文件路径未正确配置** 导致的编译错误。 --- ## 🔍 错误原因 编译器无法找到 Clang 的头文件 `clang/AST/TranslationUnit.h`,这通常是因为: 1. **未安装 Clang 开发库** 2. **未正确设置 `-I` 包含路径** 3. **Clang 版本与头文件路径不匹配** --- ## ✅ 解决方法 ### ✅ 方法一:安装 Clang 开发库(推荐) 你需要安装包含 Clang 头文件的开发包。具体命令取决于你的操作系统。 ### 🐧 Ubuntu / Debian: ```bash sudo apt update sudo apt install libclang-dev clang libclang-common-XX-dev ``` > 将 `XX` 替换为你使用的具体版本号,例如 `17`、`18`、`20` 等。 示例(以 Clang 20 为例): ```bash sudo apt install clang-20 libclang-20-dev libclang-common-20-dev ``` --- ### 🍎 macOS(使用 Homebrew): ```bash brew install llvm brew install clang ``` 然后设置头文件路径: ```bash export CPATH=$(brew --prefix llvm)/include export LIBRARY_PATH=$(brew --prefix llvm)/lib ``` --- ### ✅ 方法二:手动指定 Clang 源码中的头文件路径 如果你是从源码构建的 LLVM/Clang,需要在编译命令中加上 `-I` 参数: ```bash clang++ -I/path/to/llvm-project/llvm/include \ -I/path/to/llvm-project/build/include \ -I/path/to/llvm-project/clang/include \ -I/path/to/llvm-project/build/tools/clang/include \ your_file.cpp ... ``` > 注意:路径 `/path/to/llvm-project` 需替换为你实际的源码路径。 --- ## ✅ 方法三:验证头文件是否存在 你可以手动检查头文件是否存在: ```bash find /usr/include/clang -name TranslationUnit.h ``` 或者: ```bash find /usr/lib/llvm-XX/include/clang -name TranslationUnit.h ``` 如果找不到,说明你确实没有安装 Clang 开发包。 --- ## ✅ 示例:完整编译命令(Ubuntu Clang 20) ```bash clang++ -std=c++17 simple_ast_program.cpp -o simple_ast_tool \ $(llvm-config --cxxflags --ldflags --system-libs --libs core support) \ -lclangAST -lclangTooling -lclangFrontend -lclangDriver \ -lclangParse -lclangSema -lclangBasic -lclangLex ``` --- ## ✅ 补充说明:头文件路径结构 Clang 的头文件通常位于: ``` /usr/include/clang/AST/TranslationUnit.h ``` 或: ``` /usr/lib/llvm-XX/include/clang/AST/TranslationUnit.h ``` 如果你看到路径是: ``` clang/AST/TranslationUnit.h ``` 说明你没有设置 `-I`,编译器默认不会去这些路径找。 --- ## ✅ 总结检查清单 | 检查项 | 是否完成 | |--------|----------| | 安装了 `libclang-dev` 或对应版本? | ✅ | | 使用了 `llvm-config` 自动获取编译参数? | ✅ | | Clang 头文件路径是否被 `-I` 包含? | ✅ | | Clang 版本和开发包是否一致? | ✅ | --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值