Итак, я получил оттуда костюм отсюда и make
отредактировал его. Тогда я пошел в scipoptsuite-3.1.1/scip-3.1.1/interfaces/jni
и следовали инструкциям в README:Создание scip.jar (linux)
1) doxygen jniinterface.dxy
- generates xml documentation
2) ./createJniInterface.py xml/*
- uses the xml documentation and creates JNI interface
3) create softlinks to soplex and scip in "lib" folder:
mkdir ./lib
cd lib
ln -s ../../../../soplex-2.0.0 soplex
ln -s ../../.. scip
cd ..
4) make soplex
- creates shared library of Soplex
- use options (e.g., ZLIB=false GMP=false) as required
5) make scip
- creates shared library of SCIP
- use options (e.g., ZIMPL=false READLINE=false ZLIB=false GMP=false)
as required
6) make
7) test your installation:
cd examples/JniKnapsack
make
make run
В конце, когда я делаю make run
, я получаю следующее сообщение об ошибке:
[email protected]:~/solvers/scipoptsuite-3.1.1/scip-3.1.1/interfaces/jni/examples/JniKnapsack$ make run
./run.sh
java: symbol lookup error: /home/ubuntu/solvers/scipoptsuite-3.1.1/scip-3.1.1/interfaces/jni/lib/libjscip-0.1.linux.x86_64.gnu.opt.spx.so: undefined symbol: SCIPcreate
make: *** [run] Error 127
Любая идея, как решить эту проблему?
В какой-то момент у меня возникли проблемы с make
. Мне пришлось добавить папку, содержащую jni.h, в качестве опции -I для gcc в Makefile.
[email protected]:~/solvers/scipoptsuite-3.1.1/scip-3.1.1/interfaces/jni$ diff Makefile-ORIG Makefile
55c55,56
< FLAGS += -I$(LIBDIR)/jniinc
---
> #FLAGS += -I$(LIBDIR)/jniinc
> FLAGS += -I/usr/lib/jvm/java-7-openjdk-amd64/include
[email protected]:~/solvers/scipoptsuite-3.1.1/scip-3.1.1/interfaces/jni$ uname -a
Linux ec2mln0r 3.13.0-49-generiC#83-Ubuntu SMP Fri Apr 10 20:11:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Вот номер версии GCC:
[email protected]:~/solvers/scipoptsuite-3.1.1/scip-3.1.1/interfaces/jni$ gcc --version
gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2