是否可以在Android应用程序中包含链接并使用为Linux构建的共享库(.so)文件?

是否可以在Android应用程序中包含链接并使用为Linux构建的共享库(.so)文件?,第1张

概述我正在开发一个项目,我需要在Android应用程序包含NGSpice模拟库,当然能够使用它.我尝试使用SWIG和AndroidNDK在我的Android应用程序中包含NGSpicewindowsDLL,但事实证明它甚至不可能,所以现在我开始考虑将NGSpice构建为sharedlibraryforlinux.现在我的问题是,我可以在我

我正在开发一个项目,我需要在Android应用程序中包含NGSpice 模拟库,当然能够使用它.

我尝试使用SWIG和AndroID NDK在我的AndroID应用程序中包含NGSpice windows DLL,但事实证明它甚至不可能,所以现在我开始考虑将NGSpice构建为shared library for linux.

现在我的问题是,我可以在我的AndroID应用程序中使用NGSpice的linux共享库,还是需要以某种方式构建不同的方式才能在我的AndroID应用程序上运行.

谢谢.

解决方法:

不,AndroID通常与传统的linux有两个主要区别:

1)它使用Bionic C库和动态链接器,而不是更传统的集合,如glibc.

2)AndroID通常在ARM或32位x86处理器上运行(或者在极少数情况下是MIPS),而您的桌面linux库可能是64位或32位x86代码.

如果你构建一个与机器的体系结构兼容的.so,并且使用bionic的系统库函数和动态链接器,那么它应该是可行的.

或者,如果您有兼容的体系结构但错误的libc,可以编写自己的加载器以便在安全设备上以工作形式将其存入内存,或者在有根设备上运行更传统的设备linux用户空间(通常是Debian派生的)在chroot中.但是这些都不容易集成到AndroID应用程序中 – 对于后者,你几乎肯定必须通过进程间通信来完成工作,这在前一种情况下也可能更容易.

您唯一真正认可的解决方案是使用ndk构建系统或ndk生成的“独立工具链”和库的当前构建系统从源重建库.

总结

以上是内存溢出为你收集整理的是否可以在Android应用程序中包含/链接并使用为Linux构建的共享库(.so)文件?全部内容,希望文章能够帮你解决是否可以在Android应用程序中包含/链接并使用为Linux构建的共享库(.so)文件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1100148.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存