Frama-C:在Cygwin / Windows 8.1上编译

时间:2014-02-19 10:36:58

标签: c windows compilation windows-8.1 frama-c

对于那些在Windows上编译C的人来说,这是一个简单的问题!

我想在Windows 8上使用最新版本的Frama-C C静态分析器及其GUI。据我所知,拥有Windows安装程序的最新版本是Boron,它是3 -4岁。所以看起来像我需要自己编译它(版本Fluorine 3)。但是,我在前几步磕磕绊绊。

Frama-C Fluorine 3 的快速入门编译说明为here

  • 第1步:安装OCaml。我已经从here安装了Windows版本。
  • 步骤1b:我相信步骤1安装了Gtk等等。
  • 步骤2b:运行:

    ./configure --prefix C:/windows/path/with/direct/slash && make && make install

关于这些说明的4件事让我感到困惑:

  1. 这个configure文件是什么意思?如果我打开Cygwin终端,它会将我置于用户的主目录中,如果我运行./configure,则表示没有这样的文件或目录。我认为这是指在源代码中引用其中一个配置文件,但是有超过10个。

  2. C:/windows/path/with/direct/slash到底意味着什么?请有人给我一个很好解释的真实例子吗?

  3. 我应该从哪个目录运行上述命令(步骤2b)?

  4. 我应该在哪个目录中放置提取的Frama-C源代码分发? (我应该从档案中提取src目录,还是需要所有内容?)

  5. 我要做的就是按照他们的主页“Short example”链接到他们的主页,使用最新版本,在Windows 8.1上,我需要一个“Absolute Dummies”指南所以!

    非常感谢

3 个答案:

答案 0 :(得分:1)

我遇到了你的问题,因为我也对“with / direct / slash”指令感到困惑。至少我可以帮助解决你的其他问题:

  1. 按照惯例,它始终是tarball根目录中的配置文件。因此,解压缩tar.gz文件,然后cd进入创建的目录并从那里运行./configure。

  2. - 前缀定义安装路径,因此我假设此选项应该将可执行文件放在某个目录中,可以从Windows轻松访问(例如Program Files目录)。我不确定“直接斜线”的含义是什么。通常,Cygwin的根目录实际上是C:驱动器上的某个目录(例如C:\ cygwin),因此为了访问文件层次结构的其余部分,通常在Cygwin根目录中有一个名为“cygdrive”的映射安装。这样你就可以使用'/ cygdrive / c / path / to / windows / directory'之类的东西从Cygwin中导航到宽层次结构。在Cygwin中使用“C:/”有点奇怪。为了它的价值,我只接受默认(没有--prefix标志)或在Cygwin层次结构中指定一些像'/ usr / local / bin'的东西,然后从那里运行它。

  3. 从指定的'--prefix'目录,因为这是可执行文件的位置。如果将其保留为默认值之一,则可以从任何地方运行可执行文件,因为它将位于PATH上的某个位置。

  4. 将整批内容解压缩到主文件夹中的某个工作目录中。一旦你安装了它(这就是'./configure&& make&& make install'),你就可以丢弃提取的档案。

答案 1 :(得分:0)

Frap-C wiki提供了

https://github.com/Leaflet/Leaflet/issues/3198,在Windows 7和Windows 8.1上都进行了测试。

这些说明不受官方支持,但它们应该帮助用户使用OPAM(OCaml包管理器)编译和安装Frama-C。

此外,由于最近的Windows版本之间的过程没有显着差异,因此Updated instructions about compiling Frama-C on Windows的某些答案也可能适用于您的案例。

答案 2 :(得分:0)

在Windows 10中,成功安装frama-c遵循以下说明:

  1. 在Windows 10中启用WSL

https://docs.microsoft.com/en-us/windows/wsl/install-win10

Ubuntu现在应该在Windows菜单中可用。运行它并按照说明创建用户。

  1. 要安装opam,

    1. sudo add-apt-repository -y ppa:snwh/ppa
    2. sudo apt update
    3. sudo apt upgrade
    4. sudo apt install make m4 gcc opam
  2. 可以使用以下方法设置
  3. opam:

    1. opam init --disable-sandboxing -c 4.07.0 --shell-setup

      如果有opam开关错误,请运行以下命令:

      opam switch create 4.07.0
      

      这将下载并安装ocaml编译器4.07.0版本。

    2. eval $(opam env)

    3. opam install -y depext

  4. 要安装Frama-C,请运行以下命令:

    1. opam depext --install -y lablgtk3 lablgtk3-sourceview3
    2. opam depext conf-gnomecanvas
    3. opam depext conf-gtksourceview
    4. opam depext --install -y frama-c

    这将处理大约70个文件,并且安装需要花费一些时间。

    1. eval $(opam config env)

    再次重新启动Ubuntu,如果出现“找不到命令”问题,则再次执行命令“ eval $(opam config env)”并使用frama-c。

  5. 一旦安装了Frama-c 21.1,请进行测试:

    1. which frama-c
    2. which frama-c-gui

    如果两个命令都显示正确的安装目录,则它们将成功执行。

  6. 在安装frama-c-gui后,由于WSL不支持GUI,因此我使用了mobaXterm。

    1. 安装MobaXterm。 Xserver默认带有MobaXterm。
    2. 启动MobaXterm时,Xserver图标将显示在右上方。单击以开始使用。
    3. Xserver启动后,将鼠标悬停在该图标上可以查看GUI显示的IP地址。示例将显示:“ 172.19.64.1:0.0”。注意这一点。
    4. 在Ubuntu中,export DISPLAY="172.19.64.1:0.0"
    5. 然后启动frama-c-gui。它将使用Xserver GUI打开。

如果使用安装在Virtual Box中的Virtual Box和Linux发行版,请按照步骤2至5进行安装。为虚拟盒分配至少20 GB的空间,以成功安装。只有分配了足够的磁盘空间时,frama-c-gui才会安装。