我真的很感兴趣学习ocaml,它很快(他们说它可以编译为本地代码)并且它是功能性的。所以我尝试编写一些简单的代码,例如启用mysql事件调度程序。如何将ocaml编译为本地代码
#load "unix.cma";;
#directory "+mysql";;
#load "mysql.cma";;
let db = Mysql.quick_connect
~user:"username"
~password:"userpassword"
~database:"databasename"();;
let sql =
"SET GLOBAL EVENT_SCHEDULER=1;"
in
(Mysql.exec db sql);;
它工作在ocaml的解释很好,但是当我试图把它编译为本地(我使用Ubuntu的业力),无论这些命令的工作
ocamlopt -o mysqleventon mysqleventon.ml unix.cmxa mysql.cmxa
ocamlopt -o mysqleventon mysqleventon.ml unix.cma mysql.cma
我也尝试
ocamlc -c mysqleventon.ml unix.cma mysql.cma
所有这些导致相同的消息
File "mysqleventon.ml", line 1, characters 0-1:
Error: Syntax error
我再试着删除“#负载”,所以代码是这样
let db = Mysql.quick_connect
~user:"username"
~password:"userpassword"
~database:"databasename"();;
let sql =
"SET GLOBAL EVENT_SCHEDULER=1;"
in
(Mysql.exec db sql);;
的ocamlopt结果消息
File "mysqleventon.ml", line 1, characters 9-28:
Error: Unbound value Mysql.quick_connect
我希望有人能告诉我,在哪里我做错误。
只是一个评论:你不需要Printf.sprintf在你展示的代码。 – 2010-04-20 22:53:16
我从网上修改它(忘记地址),作为我在数据库上的第一次尝试。我已经尝试了你的消解,并且你是对的,所以我从代码中删除了“Printf.sprintf”部分。谢谢。 – 2010-04-21 03:56:10