只有linux64的so库,可以在android、ios或者macOS中使用吗

EvilCross 2018-02-04 04:08:55

第三方库只提供了动态链接库和*.h头文件。有win32、win64和linux64三个版本。
我想在macOS上和移动平台上使用java语言来调用,可以做到吗?

...全文
1613 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
前面已经说了,安卓的.so是Linux ELF格式,macos不能用,你说的“我是用的mac os系统。我用用gcc编译出的so文件,能够正常加载使用”应该生成的是Mach-O格式,不是ELF。
somannick 2018-10-28
  • 打赏
  • 举报
回复
引用 1 楼 DelphiGuy 的回复:
macos、iOS肯定不行,它们的动态库格式是.dylib(Mach-O object file),和Linux .so(ELF格式)不是一回事。 至于Android,如果使用GUI的话,肯定不行,它使用专有的图形环境,不基于x-window服务和KDE、GNOME之类的桌面环境。非GUI,也不一定,基础库不一样,Linux上glib是标准部件,但是Android上并没有,通常.so需要静态链接这些库。
大佬,我想问问,我是用的mac os系统。我用用gcc编译出的so文件,能够正常加载使用。但是我用android ndk编译出来的so包(全平台的 包括 x86 x86_64)在mac下都不能使用。会报如下错误:java.lang.UnsatisfiedLinkError: /Users/tom/codebase/jni/dist/libSample.so: no suitable image found. Did find: /Users/tom/codebase/jni/dist/libSample.so: unknown file type, first eight bytes: 0x7F 0x45 0x4C 0x46 0x01 0x01 0x01 0x00。请问下知道什么原因吗
  • 打赏
  • 举报
回复
macos、iOS肯定不行,它们的动态库格式是.dylib(Mach-O object file),和Linux .so(ELF格式)不是一回事。 至于Android,如果使用GUI的话,肯定不行,它使用专有的图形环境,不基于x-window服务和KDE、GNOME之类的桌面环境。非GUI,也不一定,基础库不一样,Linux上glib是标准部件,但是Android上并没有,通常.so需要静态链接这些库。

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧