0

JNAを介して共有オブジェクトライブラリを読み込もうとしています

このファイルの名前はlibLIBNAMEです。したがって、私のコードは次のようになります。

Native.loadLibrary("LIBNAME", SomeInterface.class);

しかし、実行するたびに、

ライブラリ'LIBNAME'を読み込めません:dlopen(libLIBNAME.dylib、9):イメージが見つかりません

JNAにxxx.dylibの代わりにxxx.soをロードするように指示するにはどうすればよいですか?

また、引数を渡すだけで.soファイルを.dylib内にラップしようとしましたが、どうやら運が悪かったようです。

libLIBNAME.soからlibLIBNAME.dylibへのシンボリックリンクを設定すると、次のようになります。

ライブラリ'LIBNAME'を読み込めません:dlopen(/path..../libLIBNAME.dylib、9):適切なイメージが見つかりません。見つかりました:/path..../libLIBNAME.dylib:不明なファイルタイプ、最初の8バイト:0x62 0x6F 0x6F 0x6B 0x00 0x00 0x00 0x00

何か案は?

4

1 に答える 1

0

名前が示すように、Native.loadLibrary()実行しているプラ​​ットフォームに固有のライブラリが必要です。別のプラットフォーム用にコンパイルされたライブラリは適していません。ライブラリ ファイルがどのような種類のファイルかはわかりませんが、dyld によって報告された最初の数バイト (62 6f 6f 6b = "book"?) は、それが Mac OS X の dylib ではないことを示しています。

于 2012-05-10T17:31:14.487 に答える