Я намагаюся скомпілювати свій проект C в Ubuntu (32-бітний), що працює в VirtualBox. Для складання коду, про який йде мова, потрібно зовсім небагато пам'яті, принаймні 3 гіга. Тому я дав концерт VM 2. Разом з 2 доступними місцями місця для заміни, цього має бути достатньо. З якоїсь причини, хоча gcc не вдається з помилкою пам'яті поза пам'яттю, після того як вона виділила 900 мег або близько того. Збільшити обсяг пам’яті до 2,7 гіга (максимально дозволений VirtualBox) не допомогло. Здається, існує обмеження в кількості пам'яті, яку може використовувати процес. Але коли я бігаю ulimit
, це показує "необмеженість".
ОНОВЛЕННЯ - Ось журнал створення:
libtool: компілювати: cc -msse2 -I. -I / home / cleong / qb -DPHP_ATOM_INC -I / home / cleong / qb / включати -I / home / cleong / qb / main -I / home / cleong / qb -I / usr / включати / php5 -I / usr / включати / php5 / main -I / usr / включати / php5 / TSRM -I / usr / включати / php5 / Zend -I / usr / включати / php5 / ext -I / usr / включати / php5 / ext / date / lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS = 64 -DHAVE_CONFIG_H -g -O2 -c /home/cleong/qb/qb_interpreter_gcc.c -fPIC -DPIC -o .libs / qb_interpreter_gcc.o
cc1: з пам'яті виділяється 408 байт після загальної кількості 924852224 байт
make: *** [qb_interpreter_gcc.lo] Помилка 1
Вихід з / bin / time -v:
Command exited with non-zero status 2
Command being timed: "make"
User time (seconds): 62.09
System time (seconds): 11.28
Percent of CPU this job got: 64%
Elapsed (wall clock) time (h:mm:ss or m:ss): 1:53.02
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 1848592
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 9433
Minor (reclaiming a frame) page faults: 1391779
Voluntary context switches: 5642
Involuntary context switches: 6069
Swaps: 0
File system inputs: 630360
File system outputs: 1376
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 2
Версія gcc - 4.7.2.
Вихідний код тут:
https://github.com/chung-leong/qb
Це розширення PHP. У процесі збирання використовується phpize.
ОНОВЛЕННЯ - Я зустрічаюся з тією ж проблемою в 32-розрядному Mageia 3, який також включає gcc 4.7.2. Відмова трапляється на рівні приблизно 2,7 гіга. У 64-бітному середовищі цього не відбувається.
Якщо я встановлю gcc 4.6.3 і будую за допомогою цього, він працює.