간략하게하겠습니다. 나는 현재 내가 따르고있는 코스에 OCaml을 배우고 Linux에서 VS 코드를 사용하여 설치를 위해 intellisense를 사용하려고 노력 중이다. 이를 위해서는 파일을 먼저 만들어야합니다. 문제는 "spellc.ml"파일을 빌드하려고 할 때 언 바운드 값이 있다는 오류가 발생합니다.ocamlbuild 오류 언 바운드 값
_build/
src/
...
src/
spellc.ml
utiles.ml
...
.merlin
SRC/spellc.ml :
는이 같은 디렉토리 구조가
module Spellc = struct
open Utiles
[...]
let someFunc x =
[...]
let foo = List.map case lst in
[...]
end
SRC를/utiles.ml :
module Utiles = struct
[...]
let case x =
[...]
[...]
end
.merlin :
S src
B _build/src
"Open Utiles"와 같은 공개 문을 사용하여 내가 이해할 수있는 것 (그리고 여기에 나와 함께 맨손으로, 나는 ocaml 프로젝트를 컴파일하는 데 전혀 경험이 없습니다)에서 현재 "Utiles"모듈에 포함 된 모든 표현식과 함수를 포함해야합니다 컨텍스트를 사용하여 직접 사용할 수 있으므로 사례를 사용하면 Utiles를 수행하는 것처럼 보일 수 있습니다. 사례. 그러나 내가 터미널에서 ocamlbuild 사용하여 컴파일 할 때 작동하지 않습니다
ocamlbuild -tag bin_annot src/spellc.byte
나는이 오류를 얻을 : 나는 그것의 모듈 접두어 기능을 사용할 때
Error: Unbound value case
이 발생하지 않습니다 (Utiles.case). 열려있는 성명서로 컴파일 작업을하는 쉬운 방법이 있다면 누구나 말해 줄 수 있습니까?
'utiles.ml'의 최상위 레벨에'utcase = struct ... end' 모듈이 아니라'let case x = ...'를 넣으십시오. 'utiles.ml' 파일 자체는'Utiles' 모듈을 정의합니다 : https://ocaml.org/learn/tutorials/modules.html – dkim
답을 고맙게 생각합니다! 나는 실제로 당신의 코멘트를 읽기 전에 이것을 발견했다. 우리의 파일은 선생님에 의해 주로 이렇게 올려 져서 ocaml 해석기에 붙여 넣을 수 있고 모듈을 사용할 수 있습니다. 나는 컴파일러가 .ml 파일을 모듈로 인식한다는 것을 몰랐다. –