Commits

camlspotter committed 0bcc87d

update

  • Participants
  • Parent commits f96b23d

Comments (0)

Files changed (1)

     let (==) _ _ = `Consider_using_phys_equal
     let (!=) _ _ = `Consider_using_phys_equal
 
-``open Base`` すると ``(==)`` と ``(!=)`` の型は ``'a -> 'b -> [> \`Consider_using_phys_equal]`` になる。
+``open Base`` すると ``(==)`` と ``(!=)`` の型は ``'a -> 'b -> [> `Consider_using_phys_equal]`` になる。
 そこで::
 
     if "hello" == "hello" then "equal" else "different";;
 
 さて、これをリンクする場合、依存関係の順にリンクしなければいけない::
 
-    $ ocamlc -o a.out a.cmo b.cmo c.cmo
+    $ ocamlc -o a.out a.cmo b.cmo c.cmo    # a.out 実行ファイルへとリンク
 
 これを間違えると Reference to undefined global Hogehoge というエラーが出る::
 
 
 これは cma ライブラリを作る際の落とし穴にもなる ocamlc -o lib.cma b.cmo a.cmo とした場合、 lib.cma はエラーもなく作成される。その後、この lib.cma を使って例えば c.cmo とリンクし、実行ファイルを作ろうとすると、そこで初めてエラーとしてレポートされる::
 
-    $ ocamlc -o lib.cma b.cmo a.cmo    # エラー無し
-    $ ocamlc -o a.out lib.cma c.cmo
+    $ ocamlc -a -o lib.cma b.cmo a.cmo       # lib.cma アーカイブ作成。エラー無し
+    $ ocamlc -o a.out lib.cma c.cmo          # a.out 実行ファイルへとリンク(失敗する)
     File "_none_", line 1:
     Error: Error while linking lib.cma(B):
     Reference to undefined global `A'