我想在Android上使用一个为arm64编译的共享库。我的.so文件在aarch64-linux-gnu文件夹中,但是对于其他库,我有一个aarch64-linux-android文件夹。
请这些为aarch64-linux-gnu编译的库能在arm64安卓设备上运行吗?这些名字到底代表什么?我知道aarch64指的是arm64处理器体系结构,但我不知道操作系统在这里是如何关联的。
谢谢!
发布于 2018-12-10 07:53:16
Android和ARM my有一些相同的库。基本上,SO文件必须能够找到它所链接的所有库才能运行,并且版本需要匹配,这样就不会中断。这是有风险的,在目标机器上编译整个程序通常是最安全的。您可以使用以下方法查看是否可以找到所有东西/缺少了什么:
ldd /path/to/file.so这将给出库的列表,以及文件认为它们在哪里-或者?如果它找不到。您需要反复检查,看看这个结果看上去是否正常。
即使找到所有依赖项,版本或体系结构中的不匹配也会导致程序在运行时中断。您需要对外部链接库的使用进行广泛的测试,即使这样,您也可能会错过一些破坏程序的情况。因此,如果可能的话,我会尝试获取源代码,并重新编译目标机器上的所有内容。
https://stackoverflow.com/questions/51262794
复制相似问题