Collection view

XCode14编译的Framework,在XCode13上报错

2023-02-23  本文已影响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

完结。

上一篇 下一篇

猜你喜欢

热点阅读