私は、Arch Linuxを搭載したARMv7ボードにソフトウェアをビルドしようとしています。 また、ソフトウェアのためにPGOビルドをビルドします。最初のビルドはエラーなしでコンパイルされますが、2番目のビルドは、ビルドにプロファイル最適化されたディレクトリを使用しているよりもクラッシュします。 私は現在、私が2GB RAMを持ってここにバイトを割り当てるメモリが不足しています
cc1: out of memory allocating 66574076 bytes after a total of 148316160 bytes
を、このエラーメッセージが表示されました。 私は私ができるほどの大きさの私のスワップファイル(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)そうでなければ仮想メモリ –