emscripten 断言=1 生成链接器错误"Referencing global in another module!"

emscripten ASSERTIONS=1 generates linker error "Referencing global in another module!"

本文关键字:global Referencing in another module 错误 断言 链接 emscripten      更新时间:2023-10-16

当我设置-s essertions = 1",链接器将失败,其中大量"在另一个模块中引用全局!"消息,例如:

在另一个模块中引用全局![16 x i8]* ;ModuleID = 'src/ui_lib/logic/libcommands.bc' [16 x i8]* ;ModuleID = 'src/ui_lib/curves.bc' 在另一个模块中引用全球! %" struct.ui :: emscriptenBindingInitializer_uicurves"* @_zn5boost6detail15optional_detail13none_instanceins_6none_tee8instancee ;ModuleID = 'src/ui_lib/logic/libcommands.bc' %" struct.ui :: emscriptenBindingInitializer_uicurves"* @_zn5boost6detail15optional_detail13none_instanceins_6none_tee8instancee ;ModuleID = 'src/ui_lib/curves.bc'

当我使用nlohmann :: json(https://github.com/nlohmann/json)的实例时,就会发生这种情况。

是一个错误还是功能?我该如何修复?

它是一个emscripten错误:https://github.com/kripken/emscripten/issues/5008

修复非常容易:https://github.com/kripken/emscripten/pull/5021/commits/1b0d41d1845015491a52cb92cb9f7da7da7da7dfe3acf44