LLVM 包:没有为以下模块提供实现:Llvm_analysis

LLVM package: No implementation provided for the following modules: Llvm_analysis

当尝试使用 Llvm 包中的 Llvm_analysis 模块时,我收到错误消息:

File "_none_", line 1:
Error: No implementations provided for the following modules:
         Llvm_analysis referenced from .compiler.eobjs/native/dune__exe__Codegen.cmx

这是我的错误还是 llvm 包有问题?

沙丘文件是:

(executable
 (name compiler)
 (modes byte exe)
 (libraries base stdio sexp_pretty str parsexp llvm)
 (preprocess (pps ppx_jane ppx_regexp))
)

llvm库被打包成几个子包,例如

$ ocamlfind list | grep llvm
llvm                (version: 9.0.0)
llvm.all_backends   (version: 9.0.0)
llvm.analysis       (version: 9.0.0)
llvm.bitreader      (version: 9.0.0)
llvm.bitwriter      (version: 9.0.0)
llvm.executionengine (version: 9.0.0)
llvm.ipo            (version: 9.0.0)
llvm.irreader       (version: 9.0.0)
llvm.linker         (version: 9.0.0)
llvm.passmgr_builder (version: 9.0.0)
llvm.scalar_opts    (version: 9.0.0)
llvm.target         (version: 9.0.0)
llvm.transform_utils (version: 9.0.0)
llvm.vectorize      (version: 9.0.0)
llvm_AArch64        (version: 9.0.0)
llvm_AMDGPU         (version: 9.0.0)
llvm_ARM            (version: 9.0.0)
llvm_BPF            (version: 9.0.0)
llvm_Hexagon        (version: 9.0.0)
llvm_Lanai          (version: 9.0.0)
llvm_MSP430         (version: 9.0.0)
llvm_Mips           (version: 9.0.0)
llvm_NVPTX          (version: 9.0.0)
llvm_PowerPC        (version: 9.0.0)
llvm_RISCV          (version: 9.0.0)
llvm_Sparc          (version: 9.0.0)
llvm_SystemZ        (version: 9.0.0)
llvm_X86            (version: 9.0.0)
llvm_XCore          (version: 9.0.0)

llvm 包只是基础库,要启用 Llvm_analysis 你需要 link 到 llvm.analysis (即,将它添加到 libraries 你的 dune 文件的节。