我已经安装了frama-c和why3,但是当我尝试启动frama-c时,出现jessie3错误。
frama-c -verbose 2
[kernel] warning: cannot load plug-in `Jessie3' (incompatible with Neon-20140301).
The exact failure is: error loading shared library:
/usr/local/lib/framac/plugins/Jessie3.cmxs: undefined symbol: camlGzip
我未找到有关camlGzip的任何信息,因此它可能是任何配置文件中的错误(它可能是camlzip),但我在声明它的位置没有任何帮助。
编辑:我试图在Jessie3.cmxs中的camlzip中修改camlGzip,但是当我启动frama-c时它会产生分段错误
我的frama-c和Why3版本:
frama-c -version
Version: Neon-20140301
why3 --version
Why3 platform, version 0.85 (build date: Wed Oct 29 10:42:47 CET 2014)
我在Mint17虚拟机上工作,每个程序的./configure和make均无错误
我希望有人已经有这个问题并且可以帮助我
我只是遇到了这个问题,并且已经解决了。您必须安装Why-2.34才能将jessie安装到您的frama-c库中。从此链接下载:https://opam.ocaml.org/packages/why/why.2.34/
我在编译它时遇到了一些麻烦,因为我必须删除coq才能成功编译它。顺便说一句,有人知道我应该如何报告coq编译错误,请帮忙。
[如果您还有Why3.85,我建议您降级到3.83,因为它似乎是Why.2.34可以识别的唯一版本。
欢呼声。
我收到相同的消息,试图在您的帖子发布5.333年后在fedora 31中安装frama-c钙。我使用dnf和dnfdragora从fedora官方存储库安装了它。
我搬到了fedora,因为之前我曾尝试将其安装在debian 10上,但从未能够通过带有突触和apt-get的.deb文件安装它。
我还尝试从源代码中编译它,我尝试安装./configure报告的每个缺少的库,但是也失败了。
后来我了解到ocaml被认为是一种编程环境,他们的设计师还开发了维护工具。需要opam程序才能在ocaml环境中安装程序。因此,我还尝试通过opam程序安装所需的软件包。再次无效。
搜索网络中的警告,我发现负责ocaml环境的团队承认,他们在更改某些变量方面做得太过分了。 (我无法访问我的debian分区,以查看在哪个版本中引入了问题,以将其写入此处。)
在某些版本中,他们从其库中删除了一些变量,这导致所有混乱,具体取决于那些ocaml库。
他们不尊重版本号x.y.z模式,这意味着:z进行了较小的修订,增加了一些不增加新功能的修补程序;如果增加了新功能,但是y仍然向后兼容,则y增加。每次新功能更改时x都会增加,但不再向后兼容。
他们引入了不兼容的更改,但没有更改版本号的x部分。
这是一个悖论,受过正规方法教育的团队犯了这样的基本错误。我试图修复它,但是我放弃了,因为它们使用了ocaml的面向对象风格,这对我来说太复杂了。
要解决此问题,必须解密每个库的哪个版本与其他库匹配,以使安装正常进行。
很抱歉,我无法提供解决方案,这是在我尝试安装frama-c徒劳无果时发现的。
确实,解决问题的第一步是理解它。但是,这是ocaml专家的任务,不是。