Мне действительно интересно изучать ocaml, это быстро (они сказали, что его можно скомпилировать в нативный код) и это функционально. Поэтому я попытался написать что-то простое, например, включить планировщик событий mysql.
#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 он работает нормально, но когда я пытался скомпилировать его в native (я использую ubuntu karmic), ни одна из этих команд не работала
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
Затем я попытался удалить «# load», поэтому код выглядит так
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
Я надеюсь, что кто-то может сказать мне, где я делаю неправильно.