2
私はCompile.sh
ファイルを持っています。
この1つは魔法のように動作:Linux端末でプロジェクトをコンパイルできない
cd src
javac model/JNIResultSet.java
javah -jni model.JNIResultSet
cp model_JNIResultSet.h ./../bin/
cd ..
cd bin
gcc -fPIC -o libspieler.so -shared -I/usr/java/jdk1.8.0_73/include/ SharedTable.c -lc
java -Djava.library.path=./../bin/ app.Main
私の問題は、私はbinフォルダに私の情報源を持ってしたくないということです。
私はそれらを別のフォルダに入れたいと思っています。私のスクリプトはこの1つのように見えることについては
:この1つは機能しない理由
cd src
javac model/JNIResultSet.java
javah -jni model.JNIResultSet
cp model_JNIResultSet.h ./../data/
cd ..
cd data
gcc -fPIC -o libspieler.so -shared -I/usr/java/jdk1.8.0_73/include/ SharedTable.c -lc
cd ..
cd bin
java -Djava.library.path=./../data/ app.Main
は私は知りません。例外はありませんが、プログラムも正しく動作しません。あなたはそれを修正する方法を知っていますか?
"libspeiler.so"はどちらの場合も作成されていますか?または、コンパイラのエラーは何ですか? .soをロードするためにどのようなコードを使用していますか? – Jamie
エラーはありません。Cプロジェクトはtxtファイルから読み込む必要があります。私は、別のフォルダにテーブルが空の場合は、コードを変更せずに、binフォルダにソースがある場合 – mafioso
は、デバッガを介してステップスルーと新しいバージョンでうまくいくのを参照してください..私の最初の推測だろう相対ファイルパスが何らかの形で破棄されるようになりました。 – yano