Ale*_*ohn 5 g++ atomic android-ndk c++11
我的设备无法加载本机库;错误消息是
java.lang.UnsatisfiedLinkError: dlopen failed: unknown reloc type 160 @ 0xa849dc64 (6010)
Run Code Online (Sandbox Code Playgroud)
实际上160是R_SH_GOT32并且不应被Android加载程序所期望。
这是最小的代码示例:
#include <atomic>
#define N 3
struct S {
int a[N];
};
void qq() {
std::atomic<S> s;
s.exchange(S());
}
Run Code Online (Sandbox Code Playgroud)
请注意,足以#define N 2正确加载库。
我正在使用NDK r10e,在ARM 32上进行测试,并将仿真器设置为API 4.4.4(API 19)。我尝试了不同的工具链:4.8、4.9和clang。我尝试了gnustl_static和共享,以及libc ++。
这闻起来像是NDK中的错误吗?
更新:使用NDK 11和clang工具链,链接器仅显示
NDK_ROOT / sources / cxx-stl / gnu-libstdc ++ / 4.9 / include / atomic:233:错误:未定义对'__atomic_exchange'的引用
| 归档时间: |
|
| 查看次数: |
621 次 |
| 最近记录: |