3.5.2 cmake 构建iOS framework,编译时v8报错

  • Creator 版本:3.5.2

  • 目标平台: iOS-13.3 Xcode-13.4.1 macOS-12.4

  • 报错信息
    Undefined symbols for architecture arm64:
    “v8::internal::trap_handler::RegisterDefaultTrapHandler()”, referenced from:
    v8::internal::trap_handler::EnableTrapHandler(bool) in libv8_monolith.a(handler-outside.o)
    “v8::internal::trap_handler::TryHandleSignal(int, __siginfo*, void*)”, referenced from:
    v8::TryHandleWebAssemblyTrapPosix(int, __siginfo*, void*) in libv8_monolith.a(api.o)
    v8::V8::TryHandleSignal(int, void*, void*) in libv8_monolith.a(api.o)
    ld: symbol(s) not found for architecture arm64

  • native\engine\ios\CMakeLists.txt

  • 上图小改了下,构建还是在引擎构建面板点构建,在Xcode编译则报错了

  • 有cmake 大佬遇到过么,卡2,3天了,主要cmake也不是很熟

  • @397136899 @zzf_2025

真机遇到这个问题 模拟器没有 真奇葩

大佬解决了吗?可能某个配置没有改到,我也去找找看

没 刚有时间看一看 ,我还以为你解决了呢 哈哈

没有呢,尝试过SHARED 改成STATIC ,虽然可以编译通过,但是不能用。cocos2d 这个静态库没有被编译进去。如果是SHARED又会报上面出现的错,死循环 :joy:

问题大概找到了 V8_TRAP_HANDLER_SUPPORTED 应该是false 不知道为什么编译走到了true

不影响release,模拟器也可以运行,我放弃了

嗯嗯,想着去编译v8,把 V8_TRAP_HANDLER_SUPPORTED 写死 false,然后替换。

不影响么?我也去尝试下

3.3.2 版本可以编译通过,就是版本有点低一丢丢。

https://forum.cocos.org/t/topic/134444 可以到这帖子issue链接点击过去看看,里面提供了一些信息

@2293323850 请问你重新编译v8了吗?

你们的使用场景是iOS原生应用,使用creator的SDK来打开游戏吗?我也遇到这个问题,请问有解决方案吗?

同样的问题,有什么解决方案吗@官方

现在有没有解决方案呢?
-----------------分割线------------------

设置为 NO 不会报这个错误了

1赞

我用这个方式可以编译通过