2016-07-30 1 views
2

Fedora 21では、すべての前提条件をインストールした後に、ソースからFrama-Cアルミニウムディストリビューションをコンパイルしました。 OCamlの私のバージョンは4.02.3です。 Frama-CとFrama-CのGUIはうまく動作します。私はFrama-C Plug-In Development Guideのセクション2.3、 "ViewCfgプラグイン"に従おうとしています。しかし、セクション2.3.4、私はGUIの拡張コードを追加し、「-load-スクリプト」オプションを使用してそれを実行した後、「FRAMA-C GUIの拡張」で、私は次のメッセージが出ます:Frama-Cアルミニウム "Unbound module GMenu"

File "cfg_print.ml", line 87, characters 19-43: 
Error: Unbound module GMenu 
[kernel] user error: compilation of 'cfg_print.ml' failed 

を86-87読み取りライン:

let cfg_selector 
    (popup_factory:GMenu.menu GMenu.factory) main_ui ~button:_ localizable = 

は、私が「結合していないモジュールGMENU」をGoogleで検索が、便利な何かを見つけることができませんでした。私はFrama-CのNeonとSodiumバージョンを使用している間にこのエラーに遭遇したこともありませんでした。興味深いことに、そのセクションをスキップして2.3.5項「ファイルを分割してMakefileを書く」に従うと、「Unbound module GMenu」というメッセージが表示されなくなり、例は正常に動作します。

"-load-script"オプションを使用すると、Frama-C(またはOCamlの私のバージョン)が何らかの理由でGtkライブラリを見つけられないようです。しかし、私がmakeを使うと、OCaml のGtkライブラリを見つけることができます。 Frama-CやGtkライブラリをインストールした方法に間違いがありますか?これを確認するにはどうすればよいですか、もっと重要なことに、これをどのように修正できますか?

答えて

2

あなたのFrama-CのインストールはおそらくOKです。私たちがOCamlfindに移行したときに遭遇したバグです。 Frama-C Siliciumについて修正します。

あなたが本当にスクリプトを使用したい場合は、ここであなたはFRAMA-Cのソースに適用する必要があるパッチがある:不明なオプション ':

--- a/src/kernel_services/plugin_entry_points/dynamic.ml 
+++ b/src/kernel_services/plugin_entry_points/dynamic.ml 
@@ -236,7 +236,7 @@ let load_script base = 
    else 
     Format.fprintf fmt "%s -c" Config.ocamlc ; 
    Format.fprintf fmt " -w Ly -warn-error A -I %s" Config.libdir ; 
- if !Config.is_gui then Format.pp_print_string fmt " -I +lablgtk" ; 
+ if !Config.is_gui then Format.pp_print_string fmt " -package lablgtk2" ; 
    List.iter (fun p -> Format.fprintf fmt " -I %s" p) !load_path ; 
    Format.fprintf fmt " %s.ml" base ; 
    Format.pp_print_flush fmt() ; 
+0

今、私は」ocamlopt.optを取得しています-パッケージ'。"次にocamloptオプションのリストが続きます。今何が間違っているのか? – gsp

+0

これは異常です: 'ocamlopt.opt'は決して呼び出されるべきではありません。代わりに、 'ocamlfind ocaml'を使うべきです。 ocamlfindはインストールされ、Frama-Cのコンパイルに使用されます。 (それはすべきですが、誰も知らない) – byako

+0

Ocamlfindがインストールされています。私は './configure && make && sudo make install'を使ってFrama-Cをコンパイルしてインストールしましたが、残念ながら出力を保存しなかったので、ocamlfindがFrama-Cをコンパイルするために使用されたかどうかはわかりません。私はまだconfig.logを持っています。助けてくれますか? – gsp