dan*_*dan 6 linker cygwin ocaml llvm
Ocaml绑定的测试(如果你已经安装了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
Run Code Online (Sandbox Code Playgroud)
谷歌搜索表明这不是LLVM特定的,其他人有同样的问题,但我找不到解决方案.我安装了flexdll.我没有正确引用它吗?
这对我的Linux系统很有用,所以我觉得这对我在cygwin上所做的事情是特别的.有什么建议?
flexlink 在链接期间由 ocamlopt 调用,使用 -verbose 选项运行以查看它如何被调用以及缺少什么。-cc g++选项看起来特别可疑,因为它可能会删除 flexlink 并使用 g++ 作为链接器,这当然无法找到 flexdll 符号(由支持 flexlink 的 ocamlopt 生成的 ocaml 代码引用)。
| 归档时间: |
|
| 查看次数: |
809 次 |
| 最近记录: |