2015-06-08 5 views
0

Итак, я получил оттуда костюм отсюда и 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 

ответ

1

пожалуйста, попробуйте изменить правила $ (JNILIBFILE) в интерфейсах/JNI/Makefile для

$(JNILIBFILE): $(OBJDIR) $(JNILIBHEADERS) $(JNILIBDEP) $(JNILIBOBJFILES) 
      @echo "-> generating library [email protected]" 
      -rm -f [email protected] 
      $(LIBBUILD) $(LIBBUILDFLAGS) $(LIBBUILD_o)[email protected] \ 
      $(JNILIBOBJFILES) \ 
      $(LINKCC_L)$(LIBDIR)/ $(LINKCC_l)$(SCIPLIB)$(LINKLIBSUFFIX) \ 
      $(LINKCC_l)$(LPILIB)$(LINKLIBSUFFIX) \ 
      $(LINKCC_l)$(NLPILIB)$(LINKLIBSUFFIX) \ 
      $(LPSLDFLAGS) $(LDFLAGS) 
ifneq ($(RANLIB),) 
      $(RANLIB) [email protected] 
endif