c++ - Ocamlopt 不产生任何输出,只有一个错误代码

标签 c++ ocaml interop ffi

我正在尝试从 OCaml 调用一个庞大的 C++ 库,但我在使用 ocamlopt 时遇到了问题,它突然失败并显示错误代码 2。

我正在通过建立一个 C 接口(interface)来完成整个过程,我可以让它正常工作,但是一旦我引用这个库,构建就会中断。

有什么方法可以知道到底是什么失败了?我尝试了 -verbose 标志,但它只打印命令行参数(很长)。

关于如何调查此类静默故障,您有什么建议吗?

最佳答案

长话短说;检查您是否有足够的内存和/或磁盘空间。

ocamlopt 被信号杀死或耗尽内存(或两者)时,可能会发生这样的事情,检查 dmesg 输出,从中查找 OOM 消息内核,也使用 htop 来了解内存占用情况。

此外,由于当您尝试链接 C++ 库时会发生这种情况,因此很可能是 ld 进程失败(同样,很可能是 OOM),因为ocamlopt 使用系统链接器。

关于c++ - Ocamlopt 不产生任何输出,只有一个错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55252132/

相关文章:

c++ - 将 google test 链接到您的主项目

c++ - 预处理器宏的问题

c++ - `(void)varName;` 是做什么的?

global-variables - Ocaml - 全局变量与局部变量

data-structures - 表示文件/文件夹结构的最佳方式

c++ - 如何在生成之前在cmake中执行命令?

OCaml 用户定义类型模式匹配

c# - 使用 Interop 在 C# 中创建 Word 文档的更快方法

c# - Unity3D 的 OpenCV dll 调用导致 FPS 下降

c# - 我们如何将 Word(*.doc/*.docx) 转换为 PDF?