为JNI和Or-Tools制作SCIP

问题描述 投票:0回答:1

第一次尝试 SCIP。我无法完全理解如何将 JNI 与 SCIP 版本 8.x.x 一起使用。在 MacO 上。

我从网站下载了 scipoptsuite-8.0.4,然后按照如何编译它的说明进行操作:

mkdir build
cd build
cmake ..  -DAUTOBUILD=on
make
make install

经过验证后,共享库已创建:

➜ ls /usr/local/lib/libscip.dylib
/usr/local/lib/libscip.dylib

然后我按照 Or-Tools 的说明进行操作:

            System.loadLibrary("scip"); // added to verify, that shared lib is accessible
            MPSolver mpSolver = MPSolver.createSolver("SCIP");

我收到了这个错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: 'long com.google.ortools.linearsolver.mainJNI.MPSolver_createSolver(java.lang.String)'
    at com.google.ortools.linearsolver.mainJNI.MPSolver_createSolver(Native Method)
    at com.google.ortools.linearsolver.MPSolver.createSolver(MPSolver.java:140)
    at org.example.Solver.solve(Solver.java:58)
    at org.example.Solver.main(Solver.java:24)

遗憾的是,我没有任何 C++ 相关背景来继续进行下去。

java java-native-interface scip
1个回答
0
投票

事情就是这样,经过两个小时的挖掘,我发现我完全忘记了:

Loader.loadNativeLibraries();

在通过 Or-Tools 实际加载此库之前。

希望将来有人会花更少的时间来调查这样的事情。

© www.soinside.com 2019 - 2024. All rights reserved.