Objective Caml 컴파일러 v3.11.2를 사용하여 hevea-2.19 컴파일

Objective Caml 컴파일러 v3.11.2를 사용하여 hevea-2.19 컴파일

Hevea는 LaTeX에서 HTML로의 변환기입니다.http://pauillac.inria.fr/~maranget/hevea/index.html

yum 저장소에 패키지가 없는 CentOS 시스템에서 hevea를 컴파일하려고 시도하고 실패했습니다. 다음과 같이 패키지된 Objective Caml 컴파일러를 설치했습니다.

$ uname -a
Linux ppserver 2.6.32-431.29.2.el6.x86_64 #1 SMP Tue Sep 9 21:36:05
UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
$ sudo yum install ocaml
...
$ /usr/bin/ocamlc.opt -v
The Objective Caml compiler, version 3.11.2
Standard library directory: /usr/lib64/ocaml

hevea를 컴파일하려고 하면 다음이 제공됩니다.

$ wget http://pauillac.inria.fr/~maranget/hevea/distri/hevea-2.19.tar.gz
$ tar -zxvf hevea-2.19.tar.gz
$ cd hevea-2.19
[hevea-2.19]$ make
sh ocb.sh opt
/usr/bin/ocamldep.opt -modules hevea.ml > hevea.ml.depends
/usr/bin/ocamldep.opt -modules auxx.mli > auxx.mli.depends
...
/usr/bin/ocamlc.opt -c -w +a-4-9-41-45 -annot -o videoc.cmi videoc.mli
/usr/bin/ocamlc.opt -c -w +a-4-9-41-45 -annot -o zyva.cmi zyva.mli
+ /usr/bin/ocamlc.opt -c -w +a-4-9-41-45 -annot -o infoRef.cmo infoRef.ml
File "infoRef.mll", line 127, characters 2-12:
Error: Unbound value String.map
Command exited with code 2.
make: *** [ocb-opt] Error 10

이것은 오류를 유발하는 코드입니다.

let verifie name =
  String.map
    (fun c -> match c  with
    | '\t'
    | ','
    | '\n' -> ' '
    | '.' -> '-'
    |  _ -> c)
    name
;;

내 생각엔 Objective Caml 컴파일러에서 뭔가가 변경되었고 hevea 코드에 약간의 업데이트가 필요한 것 같습니다. 나는 Luc Marranget에게 이메일을 보냈으며 여기에 답변을 게시할 것입니다[아래 참조].

답변1

Luc Maranget의 이메일 답장에서,

3.11.2보다 최신 버전, 이상적으로는 현재 버전의 ocaml 컴파일러가 필요합니다. String.map은 OCaml 4.00.0에서 도입되었습니다.

어떤 경우든 OCaml 설치를 최신 버전으로 업그레이드하는 것이 좋습니다. OCaml 3.11.2가 2010년 1월에 출시되었으므로 Linux 배포판에서 제공하는 ocaml은 더 이상 사용되지 않습니다. OCaml을 설치하는 편리한 방법은 opam을 사용하는 것입니다.http://opam.ocamlpro.com/

이 Q&A가 앞으로 다른 누군가에게 도움이 되기를 바랍니다.

관련 정보