我想在使用jbuilder
进行编译时使用lablgtk2
,但我在收到这些错误消息时遇到问题:
File "_none_", line 1:
Error: No implementations provided for the following modules:
Thread referenced from /Users/hadilsabbagh/.opam/4.05.0/lib/lablgtk2/gtkThread.cmx
Mutex referenced from /Users/hadilsabbagh/.opam/4.05.0/lib/lablgtk2/gtkThread.cmx
Condition referenced from /Users/hadilsabbagh/.opam/4.05.0/lib/lablgtk2/gtkThread.cmx
这是我的jbuild
:
(jbuild_version 1)
(executable
((name simple)
(libraries (lablgtk2))
))
答案 0 :(得分:1)
这是由于this issue。 jbuilder / dune自动添加mt
谓词,这意味着如果你的库提供了一个线程选项,它将被使用,你需要添加threads
作为依赖:
(jbuild_version 1)
(executable
((name simple)
(libraries (threads lablgtk2))
))
请注意,库的顺序在ocaml中很重要,threads
需要在lablgtk2
之前。
答案 1 :(得分:-2)
很有可能,您的jbuild
缺少对core
的依赖(由于gtkThread.cmx
),它应该与以下jbuild文件一起使用:
(jbuild_version 1)
(executable
((name simple)
(libraries (core lablgtk2))
))