HarmonyOS 鸿蒙Next armeabi-v7a架构编译报错ld.lld: error: undefined symbol: __sync_synchronize
HarmonyOS 鸿蒙Next armeabi-v7a架构编译报错ld.lld: error: undefined symbol: __sync_synchronize 碰到的问题和下面这个帖子基本是一样的:
https://developer.huawei.com/consumer/cn/forum/topic/0201897661733700435
编译armeabi-v7a架构时报错:
按照上面帖子的解决方案,无法解决。而且我看现在cmake的toolchain里已经默认增加了OHOS_C_COMPILER_FLAGS -march=armv7a的配置
而且编译期这个配置是有报错的,clang不支持。是因为新版本的clang不支持改参数了吗?
同一个工程里arm64-v8a和x86_64架构编译没有上述问题。
更多关于HarmonyOS 鸿蒙Next armeabi-v7a架构编译报错ld.lld: error: undefined symbol: __sync_synchronize的实战教程也可以访问 https://www.itying.com/category-93-b0.html
解决方案:
针对您的问题,请参考这个:
更多关于HarmonyOS 鸿蒙Next armeabi-v7a架构编译报错ld.lld: error: undefined symbol: __sync_synchronize的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
感谢回复。
不过我上面这个问题纯粹是编译自己的c++代码的错误,不是由于引入三方so库造成的。
您好,这个文档的链接可以发一下吗?遇到了相同的问题,
在HarmonyOS鸿蒙Next中,使用armeabi-v7a
架构编译时,报错ld.lld: error: undefined symbol: __sync_synchronize
通常是由于链接器无法找到__sync_synchronize
符号的定义。__sync_synchronize
是GCC内置函数,用于实现内存屏障(memory barrier),确保多线程环境下的内存操作顺序。
在鸿蒙系统中,__sync_synchronize
可能未在目标架构的库中实现,或者链接的库未包含该符号的定义。可能的解决方法包括:
- 检查编译器版本和配置,确保使用支持
__sync_synchronize
的编译器。 - 确保链接的库中包含
__sync_synchronize
的实现,或者手动实现该函数。 - 检查编译配置,确保正确设置了目标架构和编译器选项。
如果问题依然存在,可能需要进一步分析编译环境和依赖库。