iOSXcodeXcode 15上C++闪退Factroy_ResLoader::get_inst
新风作浪使用 Xcode 15 真机调试,在 iOS 10.3 上设备启动立马闪退,Xcode 报错如下
xxx`Factroy_ResLoader::get_inst: 0x101f1797c <+0>: stp x29, x30, [sp, #-0x10]! 0x101f17980 <+4>: mov x29, sp 0x101f17984 <+8>: adrp x8, 1921 0x101f17988 <+12>: ldr x8, [x8, #0xba8] -> 0x101f1798c <+16>: ldarb w8, [x8] 0x101f17990 <+20>: tbnz w8, #0x0, 0x101f179dc ; <+96> 0x101f17994 <+24>: adrp x0, 1921 0x101f17998 <+28>: ldr x0, [x0, #0xba8] 0x101f1799c <+32>: bl 0x102150734 ; symbol stub for: __cxa_guard_acquire 0x101f179a0 <+36>: cbz w0, 0x101f179dc ; <+96> 0x101f179a4 <+40>: adrp x1, 1921 0x101f179a8 <+44>: ldr x1, [x1, #0xba0] 0x101f179ac <+48>: str xzr, [x1, #0x10] 0x101f179b0 <+52>: mov x8, x1 0x101f179b4 <+56>: str xzr, [x8, #0x8]! 0x101f179b8 <+60>: str x8, [x1] 0x101f179bc <+64>: adrp x0, 14 0x101f179c0 <+68>: add x0, x0, #0xa80 ; Factroy_ResLoader::~Factroy_ResLoader() 0x101f179c4 <+72>: adrp x2, -6471 0x101f179c8 <+76>: add x2, x2, #0x0 ; _mh_execute_header 0x101f179cc <+80>: bl 0x1021538e4 ; symbol stub for: __cxa_atexit 0x101f179d0 <+84>: adrp x0, 1921 0x101f179d4 <+88>: ldr x0, [x0, #0xba8] 0x101f179d8 <+92>: bl 0x1021509ec ; symbol stub for: __cxa_guard_release 0x101f179dc <+96>: adrp x0, 1921 0x101f179e0 <+100>: ldr x0, [x0, #0xba0] 0x101f179e4 <+104>: ldp x29, x30, [sp], #0x10 0x101f179e8 <+108>: ret
|
解决办法: 在build setting -> Other Linker Flags 添加 -Wl,-ld_classic
需要注意的是,如果在Xcode 14 及以下开发工具添加了 -Wl,-ld_classic 又会报错,需要删掉它才行。
参考链接
https://developer.apple.com/forums/thread/736203