美文网首页Collection view
XCode14编译的Framework,在XCode13上报错

XCode14编译的Framework,在XCode13上报错

作者: 山已几孑 | 来源:发表于2023-02-23 16:03 被阅读0次

在XCode14上编辑的库,在集中构建时编译过不去,

  "_objc_msgSend$show", referenced from:
      -[iConsoleWindow sendEvent:] in Utility(iConsole.o)
      -[iConsoleWindow motionEnded:withEvent:] in Utility(iConsole.o)
  "_objc_msgSend$synchronize", referenced from:
      -[iConsole saveSettings] in Utility(iConsole.o)
      -[iConsole initWithNibName:bundle:] in Utility(iConsole.o)
  ld: symbol(s) not found for architecture arm64
  clang: error: linker command failed with exit code 1 (use -v to see invocation)

根据报错信息分析,ld: symbol(s) not found for architecture arm64,本以为是架构问题,但是经过检查,架构是没问题的



其他排查过程不表

说下结论,
XCode14 的clang增加了一个新的特性关于msgSend的,而不向下兼容,所以在Xcode13上面报错了。
解决方式:在framework的buildSetting里面,增加-fno-objc-msgsend-selector-stubs
添加位置如下:

image.png

添加后可以发现,framework包明显增大;Xcode13可以成功对项目进行编译;

问题:这个framework的项目,就没有办法在Xcode13上面编译通过了,会提示没有-fno-objc-msgsend-selector-stubs

完结。

相关文章

网友评论

    本文标题:XCode14编译的Framework,在XCode13上报错

    本文链接:https://www.haomeiwen.com/subject/rwxtldtx.html