这是什么意思?-6ren"> 这是什么意思?-我正在尝试安装 ocaml-sqlite3 绑定(bind),以从 o'caml 程序访问 sqlite 数据库。 配置和制作顺利,但安装失败。因为文件 sqlite3.cma 不是字节码目标文件(见-6ren">
gpt4 book ai didi

sqlite - "The cma file is not a bytecode object file"=> 这是什么意思?

转载 作者:行者123 更新时间:2023-12-03 16:19:29 26 4
gpt4 key购买 nike

我正在尝试安装 ocaml-sqlite3 绑定(bind),以从 o'caml 程序访问 sqlite 数据库。

配置和制作顺利,但安装失败。因为文件 sqlite3.cma 不是字节码目标文件(见下文)。

    ~/Software/ocaml-sqlite3-release-1.5.6> sudo make install

[ -f *.so ] && SO_FILES=*.so; \
ocamlfind install sqlite3 META sqlite3.cmi sqlite3.mli sqlite3.cma *.cmxa *.a *.cmx $SO_FILES
Installed /usr/lib64/ocaml/site-lib/sqlite3/dllsqlite3_stubs.so
Installed /usr/lib64/ocaml/site-lib/sqlite3/sqlite3.cmx
Installed /usr/lib64/ocaml/site-lib/sqlite3/sqlite3.a
Installed /usr/lib64/ocaml/site-lib/sqlite3/libsqlite3_stubs.a
Installed /usr/lib64/ocaml/site-lib/sqlite3/sqlite3.cmxa
Installed /usr/lib64/ocaml/site-lib/sqlite3/sqlite3.cma
Installed /usr/lib64/ocaml/site-lib/sqlite3/sqlite3.mli
Installed /usr/lib64/ocaml/site-lib/sqlite3/sqlite3.cmi
Installed /usr/lib64/ocaml/site-lib/sqlite3/META
Updated /usr/lib64/ocaml/ld.conf
ocamlfind ocamlmktop -o sqlite3top -package "sqlite3" sqlite3.cma
The file sqlite3.cma is not a bytecode object file
make: *** [install] Error 2

造成这种情况的一般原因是什么,您是否经历过这个特定的 lib ?
我正在运行从源代码编译的 ocaml v 3.11.1。

编辑:
该文件似乎是由 ocamlfind 提供的,也许问题是由于我使用的是 64 环境?

最佳答案

因此,问题似乎来自不同的方向:

首先,ocamlfind 使用的 ocaml 编译器不对。我通过查看/usr/local/etc/findlib.conf 发现了这一点。 ocamlc 指向 ocamlopt.opt,那是 3.10 版。

然后,我不得不重新编译 findlib。但是出现了一个问题,因为我是64架构的,有些元素没有找到,所以我只好重新配置findlib修改-bindir和-sitelib为主。

我还用 -cc "gcc -m64"重新编译了 ocaml 系统,但我不确定它是否有任何效果。

现在,它可以工作了,但我必须使用 -I 添加 sqlite3.cma 的目录(/usr/lib64/ocaml/site-lib/sqlite3)。

不确定这是否可以帮助任何人:-)。

关于sqlite - "The cma file is not a bytecode object file"=> 这是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1457375/

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