

osxで以下のようにopamでcoreをインストールして

[code]

    opam install core
    
[/code]

以下のプログラムex01.mlを書いて、

[code]

    open Core.Std
    
    let _ =
      let list = [1;2;3] in
      let rc = List.fold_left list ~init:0 ~f:(fun acc x ->
        acc + x
      ) in
     Printf.printf "%d\n" rc
    
[/code]

ex01.ml

以下のコマンドでコンパイルすると:

[code]

    $ ocamlfind ocamlopt -package core ex01.ml
    
[/code]

以下のエラーが表示されます:

[code]

    ocamlfind: Error from package `threads': Missing -thread or -vmthread switch
    
[/code]

threadsパッケージのスイッチが駄目だと言われてますけど、threadsって何？っていう状況です。

[code]

    ocamlbuild -use-ocamlfind -package core -tag thread ex01.native
    
[/code]

このように書けば、動いたのですが、omakeを使った場合がやはり分からないのと、  
ocamlfindを使った場合の書き方が分かるとうれしいです。


CC BY-SA 3.0
2015-02-14T15:04:36.843
6491
2015-05-15T17:44:47.317
2015-02-14T15:53:48.333
7532
7532
question
ocaml
Coreの使い方を教えてください。


OMakefileも自己解決しました。-threadオプションを付ければよかったようです。

[code]

    .PHONY: all clean
    USE_OCAMLFIND = true
    FILES[]= ex01
    OCAMLPACKS[]=
      core
    OCAMLCFLAGS += -thread
    OCAMLOPTFLAGS += -thread
    
    .DEFAULT: $(OCamlProgram ex01, $(FILES))
    clean:
      rm -f $(filter-proper-targets $(ls R, .))
    
[/code]


CC BY-SA 3.0
2015-02-14T16:16:47.050
6492
2015-02-14T16:16:47.050
7532
6491
answer