5

Я пытаюсь скомпилировать VLC из этого репозитория GitHub на моем устройстве Allwinner (ARM Cortex-A8 NEON с ядром armhf и около 380 МБ ОЗУ), используя приведенные здесь инструкции.

Я продолжаю получать segfaults, поэтому я создал раздел подкачки следующим образом:

 root@lianro:~/# dd if=/dev/zero of=/swap bs=1M count=1024
 root@linaro:~/# mkswap -c /swap
 root@linaro:~/# swapon /swap

Стало лучше; вместо того, чтобы случайно сломаться примерно через одну минуту, он сломался случайно через долгое время, в прошлый раз он почти закончился, но у меня произошла ошибка на одном из последних модулей.

Кажется, что своп вообще не используется ни в какой момент компиляции. У меня много свободного места на диске.

В чем может быть проблема?

1 ответ1

1

Если для компиляции конкретного модуля требуется больше оперативной памяти, чем у вас физически, подкачка не поможет, поскольку программа попытается выделить и использовать значительно больше оперативной памяти, чем у вас в системе, и подкачка не сможет восполнить это. Linux не может поменять память, которая активно используется.

Вы можете попробовать вручную изменить CFLAGS или правило Makefile для компиляции для конкретного сбойного модуля, чтобы не выполнять оптимизацию (-O0) или использовать более низкий уровень оптимизации (например, -O1 или -Os). Это будет использовать значительно меньше памяти во время компиляции, и хотя это не идеально, это может позволить компиляции завершиться успешно. Медиаплееры, как правило, используют дорогие оптимизации, которые требуют много оперативной памяти, как во время компиляции, так и во время выполнения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .