Js_of_ocaml:调用ocurl和str时缺少原语

时间:2015-03-18 12:32:12

标签: curl ocaml js-of-ocaml

我正在使用包curl来发出Http请求(并且包str使用正则表达式)。我正在编译我的项目中的文件,没有问题,当我用js_of_ocaml编译file.byte时,我有这些错误:

js_of_ocaml --disable genprim foo.byte

Missing primitives:
  helper_curl_easy_cleanup
  helper_curl_easy_duphandle
  helper_curl_easy_getinfo
  helper_curl_easy_init
  helper_curl_easy_perform
  helper_curl_easy_setopt
  helper_curl_global_init
  re_search_forward
  re_string_match

当我包含生成的js文件时,我在Web控制台中出现此错误:Uncaught ReferenceError: helper_curl_global_init is not defined

我知道缺少原语并导致我遇到错误但是有一个解决方案可以修复它吗?

2 个答案:

答案 0 :(得分:2)

一些OCaml库使用以简单C编写的原语。出于显而易见的原因,js_of_ocaml无法将它们链接到Javascript。在这种情况下,您需要手动实现它们,这在manual

中提到

Str模块的函数在ECMAScript库中具有等价物,所以你可能需要使用它们(如果有人没有创建与Str具有相同接口的helper模块并在引擎下调用Javascript函数)

答案 1 :(得分:1)

要在js_of_ocaml中执行http请求,您需要使用该模块:http://ocsigen.org/js_of_ocaml/2.5/api/XmlHttpRequest