Мне очень интересно узнать 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);;
The ocamlopt в результате сообщения
File "mysqleventon.ml", line 1, characters 9-28:
Error: Unbound value Mysql.quick_connect
Я надеюсь, что кто-то может сказать мне, где же я делаю неправильно.
Просто комментарий: Вы не нуждаетесь в Printf.sprintf в коде вы показываете. –
Я изменил его из сети (забыл адрес) в качестве первой попытки базы данных. Я пробовал ваш sugestion, и вы правы, поэтому я удаляю часть «Printf.sprintf» из кода. Спасибо. –