You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode构建后报Lexical or Preprocessor Issue:如何解决FMDatabase.h找不到问题?

解决Xcode构建时FMDatabase.h未找到的Lexical/Preprocessor错误

遇到这种头文件找不到的编译错误很常见,我来给你梳理几个靠谱的解决步骤,按顺序试试应该能搞定:

  • 确认FMDB依赖的集成方式是否正确

    • 如果是手动导入FMDB库:检查你是不是把包含FMDatabase.h的FMDB完整文件夹拖进了项目,拖入时一定要勾选「Copy items if needed」,并且确保关联到了你当前的应用target。
    • 如果用CocoaPods管理依赖:先查看Podfile里有没有添加pod 'FMDB',如果没有就加上,然后在终端执行pod install。注意之后必须打开项目的.xcworkspace文件,而不是原来的.xcodeproj。
  • 检查项目的Header Search Paths配置
    打开Xcode的项目设置:进入「Project → Targets → 你的应用target → Build Settings」,搜索Header Search Paths:

    • 手动导入的情况:把FMDB所在的目录路径添加进去,推荐用相对路径比如$(PROJECT_DIR)/FMDB,然后把路径的类型设置为「recursive」(递归搜索子目录),这样Xcode能自动找到文件夹下的所有头文件。
    • CocoaPods的情况:正常来说pod会自动配置这个路径,如果还是报错,可以尝试删除Pods文件夹和Podfile.lock,重新执行pod install。
  • 清理构建缓存并重启Xcode

    • 先执行Product → Clean Build Folder(快捷键Cmd+Shift+K),彻底清除旧的构建缓存。
    • 完全退出Xcode(不要只是最小化),再重新打开项目/workspace,有时候缓存残留会导致这种找不到文件的奇怪问题。
  • 检查文件的Target Membership关联
    在Xcode的项目导航器里找到FMDatabase.h文件,查看右侧的File Inspector面板,确认「Target Membership」里勾选了你当前正在构建的应用target。如果是CocoaPods集成的,也可以检查Pods项目里的FMDB target是否正确关联到了主应用target。

  • 验证导入语句的正确性
    打开报错的SFSmartStoreUpgrade.m和SFSmartStoreDatabaseManager.m文件,检查导入语句:

    • 手动导入FMDB时,应该用#import "FMDatabase.h";
    • CocoaPods集成时,用#import <FMDB/FMDatabase.h>更稳妥,根据你的集成方式调整导入格式。

内容的提问来源于stack exchange,提问作者Damerla Pravallika

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:27:36