ネイティブ ライブラリに依存する Java プロジェクトがあります。*nix システムで正常に動作するネイティブ ライブラリを構築するために SWIG を使用しています。mingw 64ビットツールチェーンとSWIGを使用して、Windowsでコンパイルできるようにしようとしています。それはコンパイルされ、適切にパッケージ化された jnilib を取得できます (つまり、他のプラットフォームで行っているのと同じ方法) が、Java コードでライブラリをロードしようとすると、次のようになります。
Exception in thread "main" java.lang.UnsatisfiedLinkError: ... .jnilib: Can't find dependent libraries
そして、Java側にトレースがあります。明らかに何かを適切にリンクしていませんが、何がわかりません。私のコンパイルコマンドの関連部分は次のとおりです。
swig -java -package cStopPow -c++ StopPow.i
x86_64-w64-mingw32-g++ -I"C:/Progra~1/Java/jdk1.7.0_25/include/" -I"C:/Progra~1/Java/jdk1.7.0_25/include/win32/" -std=c+
+11 -O3 -I"C:/MinGW/include/boost/math/" -c ../src/StopPow.cpp ../src/StopPow_SRIM.cpp ../src/StopPow_LP.cpp ../src/Stop
Pow_BetheBloch.cpp ../src/StopPow_AZ.cpp ../src/PlotGen.cpp ../src/AtomicData.cpp StopPow_wrap.cxx
x86_64-w64-mingw32-g++ -shared -lmingw32 -mconsole StopPow_wrap.o StopPow.o StopPow_SRIM.o StopPow_LP.o StopPow_BetheBlo
ch.o StopPow_AZ.o PlotGen.o AtomicData.o -o libcStopPow.jnilib