我正在尝试从 OCaml 调用一个庞大的 C++ 库,但我在使用 ocamlopt 时遇到了问题,它突然失败并显示错误代码 2。
我正在通过建立一个 C 接口(interface)来完成整个过程,我可以让它正常工作,但是一旦我引用这个库,构建就会中断。
有什么方法可以知道到底是什么失败了?我尝试了 -verbose 标志,但它只打印命令行参数(很长)。
关于如何调查此类静默故障,您有什么建议吗?
最佳答案
长话短说;检查您是否有足够的内存和/或磁盘空间。
当 ocamlopt
被信号杀死或耗尽内存(或两者)时,可能会发生这样的事情,检查 dmesg
输出,从中查找 OOM 消息内核,也使用 htop
来了解内存占用情况。
此外,由于当您尝试链接 C++ 库时会发生这种情况,因此很可能是 ld
进程失败(同样,很可能是 OOM),因为ocamlopt
使用系统链接器。
关于c++ - Ocamlopt 不产生任何输出,只有一个错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55252132/