2

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

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

Frama-C Fluorine 3的快速启动编译说明在此处

  • 第 1 步:安装 OCaml。我已经从这里安装了 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从存档中提取目录,还是需要所有内容?)

我要做的就是按照他们主页链接的“简短示例”,使用最新版本,在 Windows 8.1 上,我需要一个“绝对傻瓜”指南来这样做!

非常感谢

4

3 回答 3

1

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

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

  2. --prefix 定义了安装路径,所以我假设这个选项应该把可执行文件放在某个可以从 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' 所做的),你可以扔掉提取的档案。

于 2014-06-02T00:35:08.013 回答
0

Frama-C wiki 上提供了有关在 Windows 上编译 Frama-C 的更新说明,并在 Windows 7 和 Windows 8.1 上进行了测试。

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

此外,由于最近的 Windows 版本之间的过程没有显着差异,因此该问题的一些答案也可能适用于您的情况。

于 2016-02-04T19:27:50.163 回答
-1

在 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. 可以使用以下方法设置 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

  3. 要安装 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,如果出现“command not found”问题,则再次执行命令“eval $(opam config env)”并使用 frama-c。

  4. 安装 Frama-c 21.1 后,测试:

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

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

  5. 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。

于 2020-10-12T12:23:31.000 回答