
第三方庫只提供了元件和*.h頭檔案。有win32、win64和linux64三個版本。
我想在macOS上和移動平臺上使用java語言來呼叫,可以做到嗎?
uj5u.com熱心網友回復:
macos、iOS肯定不行,它們的動態庫格式是.dylib(Mach-O object file),和Linux .so(ELF格式)不是一回事。至于Android,如果使用GUI的話,肯定不行,它使用專有的圖形環境,不基于x-window服務和KDE、GNOME之類的桌面環境。非GUI,也不一定,基礎庫不一樣,Linux上glib是標準部件,但是Android上并沒有,通常.so需要靜態鏈接這些庫。
uj5u.com熱心網友回復:
大佬,我想問問,我是用的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。請問下知道什么原因嗎uj5u.com熱心網友回復:
前面已經說了,安卓的.so是Linux ELF格式,macos不能用,你說的“我是用的mac os系統。我用用gcc編譯出的so檔案,能夠正常加載使用”應該生成的是Mach-O格式,不是ELF。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/44193.html
標籤:基礎類
