2013-04-24 7 views
2

ocaml에 bson 인코더/디코더 라이브러리를 쓰고 있습니다.OCaml에서 라이브러리를 작성하려면 어떻게해야합니까?

현재 소스 파일이 있습니다 (실제로는 하나의 파일 임).

제 질문은 도서관으로 만들려면 어떻게해야합니까 (예 : ocaml-batteries-included, camomile)?

사람들은 opam install을 사용할 수 있으며 ocamlfind + ocamlbuild을 사용하여 컴파일 할 수 있습니까?

답변

5

ocamlfind을 지원하는 것은 매우 쉽고 그럴 필요가 없습니다. 기본적으로 "유사한"라이브러리를 선택하고 META 파일을 찾아 자신의 설정에 맞 춥니 다. this StackOverflow answer에 몇 가지 기본 지침을 제공했습니다.

OCamlbuild는 자유롭게 결정할 수있는 빌드 시스템이지만 사용자가 프로그램을 빌드하기 전에 설치한다는 사실 외에도 사용자에게 영향을 미치지 않아야합니다. Makefile이나 다른 빌드 시스템 (omake 등)을 사용할 수도 있습니다. ocamlbuild의 아이디어는 라이브러리/프로그램을 빌드하기에 충분한 정보를 담은 _tags 파일을 제공하는 것입니다 (고급 작업을 수행하는 경우 myocamlbuild.ml 파일도 마찬가지입니다). 다시 말하지만, 당신과 비슷한 구조를 가진 프로젝트가 무엇을하는지보십시오.

Opam의 경우 방향을 알려줄 수있는 packaging guide이 있습니다 (단, 다른 사람들이하고있는 것을 그대로 적용하십시오).

2

조금 비표준이지만 완전히 쓸만한 것을 던지겠다 : obuild. 필요한 것은 project.obuild 파일이고 obuild build 프로젝트를 빌드합니다. obuild install은 ocamlfind와 함께 설치합니다.

opam 대신 opith 대신 github에서 obuild를 설치하십시오.하지만 opam 버전은 약간 오래된 것입니다. 여기에 샘플 obuild 아이디어가 있습니다. https://github.com/vbmithr/ocaml-websocket/blob/master/websocket.obuild

+0

ocaml-websocket이 ocamlbuild와 함께 oasis를 사용하고있는 것 같습니다. – unhammer

2

이동 Oasis; 기본적으로 라이브러리를 설명하는 _oasis 파일을 만듭니다. oasis 도구가 빌드 시스템을 만듭니다. 오아시스는 Opam을 통해 설치할 수 있습니다. Oasis를 시작하기위한 quick start 자습서가 있습니다.

Oasis는 컴퓨터가 읽을 수있는 OCaml 패키지 설명을 표준화하기위한 것입니다. 그리고 그 동안 빌드 시스템을 부산물로 만들 수 있습니다 (현재는 ocamlbuild 기반이며 Makefile이 지원됩니다).

관련 문제