在安卓平台上运行iguana::from_json(data, str);会报错: cannot locate symbol "__emutls_get_address"
Closed this issue · 2 comments
luotian1957 commented
你好,我尝试在安卓平台上,使用iguana,使用ndk25编译,编译时都是正常,但是运行时会报如标题一样的错误:CANNOT LINK EXECUTABLE "./odm/ndkdemo": cannot locate symbol "__emutls_get_address" referenced by "/odm/ndkdemo"...
排查后发现,是由于iguana/iguana/json_reader.hpp 344 static thread_local std::string static_key{}; 这行代码使用了线程局部存储,这就需要链接运行时库中提供的 __emutls_get_address 函数。
然而,一些版本的 Android 运行时库可能并不提供对 __emutls_get_address 函数的支持,这就导致运行时出现链接错误。
请教一下,这个有好的解决方案嘛?
luotian1957 commented
删除即可,不影响正常使用
qicosmos commented
删掉thread_local就行了是吧