gpt4 book ai didi

linker - cygwin 下的 Ocaml + LLVM(或者更一般地说,与 cygwin 下的 C 目标文件静态链接)?

转载 作者:行者123 更新时间:2023-12-04 16:02:15 24 4
gpt4 key购买 nike

Ocaml 绑定(bind)的测试(如果您在已安装 Ocaml 的情况下制作 LLVM,则会自动安装)在 cygwin 下都失败,当我尝试创建最简单的程序时,我得到与所有内置测试相同的错误失败:

> ocamlopt -I +llvm-2.8 -cc g++ llvm.cmxa llvm_bitwriter.cmxa llvm_trivial.ml -o llvm_trivial
/usr/lib/ocaml/libasmrun.a(unix.o):unix.c:(.text+0x14a): undefined reference to `_flexdll_dlerror'
/usr/lib/ocaml/libasmrun.a(unix.o):unix.c:(.text+0x177): undefined reference to `_flexdll_dlopen'
/usr/lib/ocaml/libasmrun.a(unix.o):unix.c:(.text+0x193): undefined reference to `_flexdll_dlopen'
/usr/lib/ocaml/libasmrun.a(unix.o):unix.c:(.text+0x1a2): undefined reference to `_flexdll_dlsym'
/usr/lib/ocaml/libasmrun.a(unix.o):unix.c:(.text+0x1bc): undefined reference to `_flexdll_dlsym'
/usr/lib/ocaml/libasmrun.a(unix.o):unix.c:(.text+0x1cf): undefined reference to `_flexdll_dlclose'
collect2: ld returned 1 exit status
File "caml_startup", line 1, characters 0-1:
Error: Error during linking

谷歌搜索表明 this isn't LLVM specific ,并且其他人也有同样的问题,但我找不到解决方案。我已经安装了 flexdll。我只是没有正确引用它吗?

这在我的 linux 系统上对我有用,所以我认为这对我在 cygwin 上所做的事情很特别。有什么建议么?

最佳答案

flexlink 在链接期间由 ocamlopt 调用,使用 -verbose 选项运行以查看它是如何被调用的以及缺少什么。 -cc g++选项看起来特别可疑,因为它可能会丢弃 flexlink 并使用 g++ 作为链接器,这当然找不到 flexdll 符号(引用自 flexlink-aware ocamlopt 生成的 ocaml 代码)。

关于linker - cygwin 下的 Ocaml + LLVM(或者更一般地说,与 cygwin 下的 C 目标文件静态链接)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4535255/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com