ocamlbuild를 사용하여 성공적으로 빌드 한 프로젝트가 있습니다. 그러나, 나는 또한 최고 수준을 통해 다른 모듈에서 프로젝트의 개별 기능과 상호 작용하는 쉬운 방법을 원하지만 ocamlmktop 사용에 대한 나의 시도는 내가 원했던대로 효과가 없습니다. Active Directory에 .cmi 파일을 수동으로 넣지 않으면 "언 바운드 모듈"오류가 발생합니다. 나는 현재 구축하기 위해 사용하고 명령은 다음과 같습니다ocamlbuild와 함께 ocamlmktop 사용
ocamlfind ocamlmktop -I _build -o my_ocaml -linkpkg -package str module1.cmo module2.cmo
_build 디렉토리에서 CMI 파일을 이동하지 않고이 프로젝트 구조에서 작동 할 수있는 최상위을 얻을 수있는 더 나은, 더 적은 해키 방법이 있나요?
편집 : 난 내가
./my_ocaml -I _build
로 최상위를 실행하는 경우는 유형 및 모듈을로드 얻을 수 알아 냈어요하지만 여전히 해키 보인다. 검색 경로 또는 cmi 파일을 아마도 굽는 방법이 있습니까?
편집 2 : 내 문제에 대한 해결책은 실제로 인터페이스 파일에 대한이 제한 사항이있는 경우 사용자 지정 최상위 레벨을 컴파일하지 않는 것일 수 있다고 생각합니다. 대신로드 지시문을 .ocamlinit에 추가하여 모듈을 사용했습니다. 누구든지이 문제를 해결할 더 좋은 아이디어가 있다면 크게 감사하겠습니다.
Module1
Module2
subdir/Module3
그런 다음 예상되는 방법으로
ocamlmktop
를 호출 대상
my_ocaml.top
를 구축, 당신은 결과
my_ocaml.top
최상위을 실행할 수 있습니다