我正在尝试使用Java API来使用Max-SMT。以下是我的尝试:
Optimize opt = ctx.mkOptimize();
opt.Add(hardConstraints);
for(BoolExpr c : C){
opt.AssertSoft(c, 1, "group");
}
但是,第一行中存在运行时错误,其中创建了opt
。
引起:java.lang.UnsatisfiedLinkError:
com.microsoft.z3.Native.INTERNALmkOptimize(J)J at 在。的com.microsoft.z3.Native.INTERNALmkOptimize(本地方法) com.microsoft.z3.Native.mkOptimize(Native.java:5237)在 com.microsoft.z3.Optimize。(Optimize.java:265)在 com.microsoft.z3.Context.mkOptimize(Context.java:3036)
我正在使用Github的最新版Z3,于9月30日下载。
答案 0 :(得分:0)
在OSX上,确保系统完整性保护不会干扰您的工作。在此设置中,它可能会在启动JVM时从您的环境中删除DYLD_LIBRARY_PATH
环境设置,这会导致无法找到*.dylib
。
有关特定于Z3的信息,请参阅Z3 Java API fails to detect libz3.dylib。有关SIP的一般信息,请参阅About System Integrity Protection on your Mac。我还没有找到一个很好的方法告诉OSX Z3是安全的#34;但是没有完全禁用SIP。