OCaIDE无法创建.cmo文件(编译模块)

时间:2012-11-05 14:17:05

标签: eclipse compilation ocaml

Eclipse Indigo下的OCaIDE有问题。我有一个新的OCaml管理项目,还有几个模块。以下是我在工作区资源管理器中的外观:
workspace explorer
所有这些文件都有错误(.mli文件是自动创建的),声音(例如文件accum.ml
Error: I/O error: lab2/accum.cmo: No such file or directory
实际上目录中没有这样的文件。我只是无法让OCaIDE创建这些文件。我尝试过自动构建,手动构建,清理,我能想到的任何东西。插件配置中设置的OCaml路径似乎没问题,因为顶层解释器工作正常。

此外,以下是项目中的一些文件:
accum.ml:

let reverseInt n =
let rec reverseAccum n accum = match n with
| 0 -> accum
| n -> reverseAccum (n/10) (10*accum + (n mod 10))
in reverseAccum n 0

的.project:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>lab2</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>Ocaml.ocamlbuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>ocaml.ocamlnature</nature>
    </natures>
</projectDescription>

.paths:

.
/usr/lib/ocaml

我真的很感谢你的帮助。

编辑:也许它也很重要,我使用Ubuntu 12.04 64位和OCaml 3.12.1

Edit2:这是一些编译器输出:

Building: lab2/simple.mli
File "lab2/simple.mli", line 1, characters 0-1:
Error: I/O error: lab2/simple.mli: No such file or directory

Building: lab2/simple.ml
File "lab2/simple.ml", line 1, characters 0-1:
Error: I/O error: lab2/simple.cmo: No such file or directory

Building: lab2/lists.mli
File "lab2/lists.mli", line 1, characters 0-1:
Error: I/O error: lab2/lists.mli: No such file or directory

Building: lab2/lists.ml
File "lab2/lists.ml", line 1, characters 0-1:
Error: I/O error: lab2/lists.cmo: No such file or directory

Building: lab2/bst.mli
File "lab2/bst.mli", line 1, characters 0-1:
Error: I/O error: lab2/bst.mli: No such file or directory

Building: lab2/bst.ml
File "lab2/bst.ml", line 1, characters 0-1:
Error: I/O error: lab2/bst.cmo: No such file or directory

Building: lab2/accum.mli
File "lab2/accum.mli", line 1, characters 0-1:
Error: I/O error: lab2/accum.mli: No such file or directory

Building: lab2/accum.ml
File "lab2/accum.ml", line 1, characters 0-1:
Error: I/O error: lab2/accum.cmo: No such file or directory

1 个答案:

答案 0 :(得分:1)

似乎问题是由我创建OCaml项目的奇怪方法引起的 - 我在Eclipse工作区外创建它们。

我发现了this主题并且他们说,OcaIDE(显然是Eclipse)试图不与其工作区外的文件夹混合。因此,如果项目不在工作区文件夹中,它将不会自动创建接口,编译单元等。

我重新创建了我的项目,这次是在工作区中,一切都很顺利。我甚至可以重命名已经创建的文件,并且所有引用(mli,cmo)都会更新。

相关问题