libmynativelib.so
JavaCppは、jni ライブラリを作成するときにネイティブ ライブラリをどこで検索し/linux-x86_64/libjnimynativelib.so
ますか?
JavaCpp は、次の@Platform
ような注釈を使用して C++ ヘッダーと共有ライブラリについて通知されます。
@Platform(include={"MyLibraryHeader.h"}, link = "mynativelib")
@Namespace("mynamespace")
public class MyLibrary {
...
}
次に、上記の Java クラスがコンパイルされ、次のように JavaCpp を介して実行されます。
javac -cp javacpp.jar MyLibrary.java
java -jar javacpp.jar -cp ../.. # classpath is parent of com/mypackage dir
次に、JavaCpp の出力:
Generating /<projpath>/jniMyLibrary.cpp
Compiling /<projpath>/linux-x86_64/libjniMyLibrary.so
g++ -I/usr/lib/jvm/java-7-openjdk-amd64/include -I/usr/lib/jvm/java-7-openjdk-amd64/include/linux <path>/jniMyLibrary.cpp -Wl,-rpath,$ORIGIN/ -march=x86-64 -m64 -Wall -O3 -fPIC -shared -s -o /<projpath>/linux-x86_64/libjnimynativelibrary.so -lmynativelib
このエラーが発生します:
/usr/bin/ld: cannot find -lmynativelib
g++ はlibmynativelib.so
、現在のディレクトリ () または linux-x86_64 サブディレクトリのいずれにも見つかりません。
LD_LIBRARY_PATH=<projdir>
役に立ちません。
どのネイティブ ライブラリをロードするかを JavaCpp に伝えるための推奨される方法は何ですか?