我試圖用Arch Linux在ARMv7板上構建我的軟件。 另外我爲我的軟件構建了一個PGO構建。第一個構建編譯沒有錯誤,但第二個構建崩潰比我使用我的配置文件優化目錄的構建。 我在這裏得到這個錯誤消息內存不足分配字節
cc1: out of memory allocating 66574076 bytes after a total of 148316160 bytes
目前我有2GB的RAM。 我試圖設置我的交換文件一樣大,我可以(20G),也是我的ulimit是無限制
$ ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 14879
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 14879
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
但它仍然無法編譯,我不知道我能做些什麼另外這裏我編譯程序。
這可能是因爲編譯器中的內存碎片太多,以至於沒有找到這個大小的塊......無論交換是多大,用戶空間在ARMv7上都不是那麼大,而是限於少於4G。 –
@AnttiHaapala所以你的意思是我在這邊什麼都不能做? – Elec
注意['malloc'甚至不會*錯誤*內存不足](https://stackoverflow.com/questions/7947849/can-i-rely-on-malloc-returning-null)如果它不是對於虛擬內存 –