请教一下, 关于 theos编译 preference_bundle_modern工程报错的问题

  1. 我的theos编译tweak,library 工程都是好的, 可以编译的
  2. 今天我创建了preference_bundle_modern 工程,直接编译的时候,就报如下的错误

不管怎么尝试始终是 19 errors generated,有没有前辈遇到过呢 , 求指点迷津…

看起来像是SDK的锅

试试看不用theos的那个第三方sdk,切回Xcode自带的SDK.应该就能正常编译了,剩下应该还会有个Linker的报错,手动稍微处理一下。

张总, 不全是sdk的锅…= =
问题解决了… 我来说一下我的解决过程吧

  1. 起初寻找论坛类似问题的帖子, 觉得很有可能是sdk的问题, 然后在/opt/theos/sdks/ 下尝试了9.0 9.2 10.1 11.2 很多版本的sdk 和 xcode自带的sdk, 发现编译tweak工程就没问题, 只要编译 preference_bundle_modern工程 就会报上面的错误, 发现换sdk这条路行不通
  2. 然后google搜寻解决办法, 发现有人说跟theos的环境可能有关系, 后面实在没办法了, 选择了重装theos
  3. 然后发现直接可以编过了, 很是开心 , 但是还是想把之前的问题找出来 为什么会出这样的问题
  4. 因为之前的theos环境,我备份到别的文件夹路径, 然后我把之前的theos环境里面的文件逐步的往新的theos环境里面放 , 发现把老版本的theos的 $THEOS/include/ 下面的头文件放进新的theos/include/ 下面去的时候, 同样的问题就出现了,19 errors generated
  5. 然后定位到问题了, 如我上面放出来的两张图的第一张图
    image
    最前面的报错就是 /opt/theos/include/xxx 的xx头文件 与 /opt/theos/sdks/iPhone11.3sdk/usr/include/xx 的头文件有冲突, 后面把 两个路径下的头文件对比着看 , 发现了问题 , 原来是同样的头文件 或者 是同样的类 重复了, 冲突了导致的问题
  6. 所以得出的结论就是 /opt/theos/include/ 的头文件 和 theos的sdk头文件 重复了冲突导致的
  7. 去掉 /opt/theos/include/ 的头文件 , 本以为会少几个错误 , 谁知道19个错误都没了, 工程编译成功
  8. 为什么后面的错误 如下图

    也都没有了呢 ? 这个目前的话还是有点懵的, 不知道为啥 , 但是目前的话工程已经可以编译过了, 就先没管这个问题了 , 如果有大佬知道为什么的话 , 还请不吝赐教 谢谢哦

所以还是sdk的锅啊,你原来的theos自带的头文件冲突。最后那几个错的话是前置问题导致的。前面的修好了pch能过了自然就没问题了哇

谢谢张总指点 :blush: