我正在尝试从OCaml调用一个庞大的C ++库,但是我遇到了ocamlopt的问题,该错误最终以错误代码2失败。
我通过建立一个C接口来完成整个工作,并且可以使它总体上正常工作,但是一旦引用此库,构建就会中断。
有什么方法可以知道到底是什么失败了吗?我尝试了-verbose标志,但它仅显示命令行参数(相当长)。
关于如何调查这样的无声故障,您有任何提示吗?
最佳答案
TL; DR;检查您是否有足够的内存和/或磁盘空间。
当ocamlopt
被信号杀死或耗尽内存(或两者都耗尽),检查dmesg
输出,从内核中查找OOM消息,还使用htop
来理解时,可能会发生这种情况。内存占用量。
另外,由于在尝试与C ++库链接时会发生这种情况,因此很有可能是ld
进程失败了(同样,很可能是OOM),因为ocamlopt
使用了系统链接程序。