0

所以我有以下文件:

_绿洲:

OASISFormat: 0.4
Name:        PongBattleServer
Version:     0.1.0
Synopsis:    Server for handling multi-player pong games
Authors:     Jason Miesionczek
License:     MIT
Plugins:     META (0.4), DevFiles (0.4)
Executable pongserver
  Path:       src
  BuildTools: ocamlbuild
  MainIs:     main.ml

主要.ml:

open Players;;

let () =
    let mgr = new player_manager

玩家.ml:

type player =
    {
        name: string;
        score: int;
    }

class player_manager =
    object (self)
        val mutable player_list = ( [] : player list)
        method add p =
            player_list <- p :: player_list
    end;;

当我运行 make 我得到这个错误:

ocaml setup.ml -build 
/home/araxia/.opam/system/bin/ocamlfind ocamldep -modules src/main.ml > src/main.ml.depends
+ /home/araxia/.opam/system/bin/ocamlfind ocamldep -modules src/main.ml > src/main.ml.depends
File "src/main.ml", line 4, characters 32-32:
Error: Syntax error
Command exited with code 2.
E: Failure("Command ''/usr/bin/ocamlbuild' src/main.byte -tag debug' terminated with error code 10")
make: *** [build] Error 1
Makefile:7: recipe for target 'build' failed

我是 ocaml 和 oasis 等的新手。我做错了什么?

4

1 回答 1

3

这与 Oasis 或其他无关,只是在您编写时

let () =
  let mgr = new player_manager

OCaml 需要一个in关键字,因为要么let引入了全局变量,要么引入了局部变量,然后您将需要 a let var = expr in expr,仅此而已。

因此,将其替换为

let () =
  let mgr = new player_manager in ()

现在因为你没有对mgr.

于 2016-10-29T18:16:49.293 回答