如何在编译时使用更少的内存,以避免杀死构建?



在使用cc链接器和货物时,我反复遇到:

= note: collect2: fatal error: ld terminated with signal 9 [Killed]
compilation terminated.

我的虚拟机分配了4gb内存,14gb空闲空间,并设置了vm.overcommit_memory = 2(最初尝试过0),但这个错误仍然存在。这是在Solana SDK安装过程中,由于cc link导致cargo失败的组件只有212K大。为什么这个被杀了?

确保在cargo buildcargo test中使用--jobs参数。即使是高规格的机器也可能在编译部分Solana代码库时耗尽内存,因此限制作业的数量可以帮助防止内存使用超过机器的限制。

开始时,您应该尝试:

cargo build --jobs 1

如果仍然失败,那么您将拥有更多内存的机器。

确保你可以运行

cargo new app
cd app
cargo build

如果这是失败的基线,我建议删除VM并尝试从WSL

运行。

相关内容

  • 没有找到相关文章

最新更新