ocamlfind抱怨没有为通过opam安装的模块提供任何实现

格雷戈里·尼斯贝特(Gregory Nisbet)

我在弄乱OCaml FFI,试图弄清楚如何推断C枚举的宽度(我认为这是C的实现定义的),并试图插入错误宽度的类型以查看会造成什么打击在运行时。这是动机,但是我遇到的实际问题要平凡得多。

我有一个简单的OCaml文件,该文件使用C FFI调用一个琐碎的函数,example.c函数将枚举转换为int。

open Printf;;

let (@->) = Ctypes.(@->);;
let returning = Ctypes.returning;;

let foreign = Foreign.foreign;;

(* deliberately use the wrong scalar type for argument *)
let wrong_int64_of_color =
  foreign "int_of_color" (Ctypes.int64_t @-> returning Ctypes.int64_t);;

let main () =
  printf "%Ld\n" (wrong_int64_of_color (Int64.of_int 100));;

let () = main ();;

我配置OPAM并安装CtypesCtypes.Foreign

    % opam config env | sed -e 's/=.*/=/'
CAML_LD_LIBRARY_PATH=
OPAMUTF8MSGS=
MANPATH=
PERL5LIB=
OCAML_TOPLEVEL_PATH=
PATH=

% opam list | grep ctypes
ctypes                      0.6.2  Combinators for binding to C libraries withou
ctypes-foreign              0.4.0  Virtual package for enabling the ctypes.forei

我用来编译一个简单.ml脚本的两个通常的咒语都使我失望,而且我没有主意。ocamlfindcorebuild(我认为这是顶部的包装器ocamlbuild

ocamlfind似乎找不到ctypesforeign然而,这并不抱怨有关无法找到包,所以我猜测ctypes,并ctypes.foreign是在怪异这些包正确的名称findlib命名。

% ocamlfind ocamlopt -package findlib,ctypes,ctypes.foreign -thread call_example.ml
File "_none_", line 1:
Warning 58: no cmx file was found in path for module Foreign, and its interface was not compiled with -opaque
File "call_example.ml", line 1:
Error: No implementations provided for the following modules:
         Ctypes referenced from call_example.cmx
         Foreign referenced from call_example.cmx

为什么ocamlfind找不到这些模块?我将它们加载到顶层没有问题。

─( 22:30:42 )─< command 0 
utop # #require "ctypes";;
─( 22:30:42 )─< command 1 
utop # open Ctypes;;
─( 22:30:55 )─< command 2 
utop # #require "ctypes.foreign";;
─( 22:31:00 )─< command 3 
utop # open Ctypes;;
卡姆斯波特

在我看来,您忘记了添加-linkpkgocamlfind选项来指示编译器实际上将软件包中的库链接起来以生成可执行文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

没有为以下模块提供实现:Str

来自分类Dev

没有为以下模块提供实现:Str

来自分类Dev

Tensorflow:没有为任何变量提供梯度

来自分类Dev

ValueError:没有为任何变量提供渐变(Tensorflow)

来自分类Dev

Keras ValueError:没有为任何变量提供渐变

来自分类Dev

没有为任何变量提供渐变-Keras

来自分类Dev

RStudio 安装没有为我提供“真正的”RStudio

来自分类Dev

Rust抱怨执行联合时没有为HashSet实现BitOr,文档指出

来自分类Dev

在tensorflow2.0中没有为任何变量提供梯度

来自分类Dev

TensorFlow 2自定义丢失:“没有为任何变量提供渐变”错误

来自分类Dev

ValueError:没有为任何变量提供渐变-Tensorflow 2.0 / Keras

来自分类Dev

我为什么得到“ ValueError:没有为任何变量提供渐变:['Variable:0']。” 错误?

来自分类Dev

ValueError:没有为任何可变自定义损失提供渐变

来自分类Dev

reprepro没有为“ galera”提供任何内容,正在跳过

来自分类Dev

grep没有为传递给变量的目录提供任何输出

来自分类Dev

ValueError:没有为任何变量提供梯度,检查你的图表是否支持梯度

来自分类Dev

Clojure:“ java.lang.IllegalArgumentException:没有为键提供任何值:”当我更改了require

来自分类Dev

为什么oracle没有为Java Card 3.0.1、3.0.2和3.0.4提供任何开发套件?

来自分类Dev

如果没有为xargs提供任何输入,请不要让xargs运行该实用程序

来自分类Dev

如果没有为强制选项提供任何参数,则zparseopts将下一个选项作为参数

来自分类Dev

当 MultivariateNormalDiag() 的 scale_diag 是一个常量时,“ValueError:没有为任何变量提供梯度”

来自分类Dev

如果类没有为该方法提供实现,为什么类对象可以调用toString方法?

来自分类Dev

如果类没有为该方法提供实现,为什么类对象可以调用toString方法?

来自分类Dev

“没有为Powershell 4注册任何管理单元”

来自分类Dev

没有为该名称定义任何查询[getAuditTaskById]

来自分类Dev

Dtrace没有为NodeJS收集任何数据

来自分类Dev

django 没有为 .id 或 .pk 返回任何值

来自分类Dev

$ _GET没有为我提供正确的内容

来自分类Dev

Angular-没有为FormBuilder提供程序

Related 相关文章

  1. 1

    没有为以下模块提供实现:Str

  2. 2

    没有为以下模块提供实现:Str

  3. 3

    Tensorflow:没有为任何变量提供梯度

  4. 4

    ValueError:没有为任何变量提供渐变(Tensorflow)

  5. 5

    Keras ValueError:没有为任何变量提供渐变

  6. 6

    没有为任何变量提供渐变-Keras

  7. 7

    RStudio 安装没有为我提供“真正的”RStudio

  8. 8

    Rust抱怨执行联合时没有为HashSet实现BitOr,文档指出

  9. 9

    在tensorflow2.0中没有为任何变量提供梯度

  10. 10

    TensorFlow 2自定义丢失:“没有为任何变量提供渐变”错误

  11. 11

    ValueError:没有为任何变量提供渐变-Tensorflow 2.0 / Keras

  12. 12

    我为什么得到“ ValueError:没有为任何变量提供渐变:['Variable:0']。” 错误?

  13. 13

    ValueError:没有为任何可变自定义损失提供渐变

  14. 14

    reprepro没有为“ galera”提供任何内容,正在跳过

  15. 15

    grep没有为传递给变量的目录提供任何输出

  16. 16

    ValueError:没有为任何变量提供梯度,检查你的图表是否支持梯度

  17. 17

    Clojure:“ java.lang.IllegalArgumentException:没有为键提供任何值:”当我更改了require

  18. 18

    为什么oracle没有为Java Card 3.0.1、3.0.2和3.0.4提供任何开发套件?

  19. 19

    如果没有为xargs提供任何输入,请不要让xargs运行该实用程序

  20. 20

    如果没有为强制选项提供任何参数,则zparseopts将下一个选项作为参数

  21. 21

    当 MultivariateNormalDiag() 的 scale_diag 是一个常量时,“ValueError:没有为任何变量提供梯度”

  22. 22

    如果类没有为该方法提供实现,为什么类对象可以调用toString方法?

  23. 23

    如果类没有为该方法提供实现,为什么类对象可以调用toString方法?

  24. 24

    “没有为Powershell 4注册任何管理单元”

  25. 25

    没有为该名称定义任何查询[getAuditTaskById]

  26. 26

    Dtrace没有为NodeJS收集任何数据

  27. 27

    django 没有为 .id 或 .pk 返回任何值

  28. 28

    $ _GET没有为我提供正确的内容

  29. 29

    Angular-没有为FormBuilder提供程序

热门标签

归档