【发布时间】:2014-05-14 05:41:11
【问题描述】:
当我尝试编译 Phalcon 时,我得到一个错误:
virtual memory exhausted: Cannot allocate memory
我正在运行以下命令
git clone --depth=1 git://github.com/phalcon/cphalcon.git
cd cphalcon/build
sudo ./install
我有一个 1GB 内存的 VPS
【问题讨论】:
当我尝试编译 Phalcon 时,我得到一个错误:
virtual memory exhausted: Cannot allocate memory
我正在运行以下命令
git clone --depth=1 git://github.com/phalcon/cphalcon.git
cd cphalcon/build
sudo ./install
我有一个 1GB 内存的 VPS
【问题讨论】:
添加更多交换文件可能会有所帮助。尝试为vim编译YouCompleteMe时遇到了这个问题,通过添加swapfile解决了。
https://www.digitalocean.com/community/articles/how-to-add-swap-on-ubuntu-14-04
【讨论】:
似乎 GCC 分配了很多内存,检查一下
停止尽可能多的服务(Apache、MySQL 等)将释放更多内存,并且 Phalcon 将编译。在最坏的情况下,您需要增加虚拟盒子的内存。
感谢@AndrewD 提供有效的链接。
【讨论】:
CFLAGS="$CFLAGS --param ggc-min-expand=0 --param ggc-min-heapsize=8192"。运行 make make: *** [phalcon.lo] Error 1 时没有工作并遇到 virtual memory exhausted: Cannot allocate memory。尝试了另一个答案中提到的交换文件方法,它在第一次尝试时就起作用了。
Andres 建议的另一个选项是从不同的文件夹构建:
步骤是……
git clone --depth=1 git://github.com/phalcon/cphalcon.git
cd cphalcon/ext
sudo ./install
正如他解释的那样,这种方法使用的内存更少,但需要更多时间,而且对于 GCC >4.7 的新版本,最终结果是相同的。
【讨论】: