Установка пакета из исходного кода в исходной файловой системе RAM - PullRequest
0 голосов
/ 10 ноября 2011

Я пытаюсь установить несколько пакетов в исходную файловую систему ram.Я использую uclibc в качестве моей библиотеки C.Это может быть глупым вопросом, но ...

Нужна ли скомпилированной программе библиотека C, установленная на initramfs?

Правильно ли я считаю, что когда программа компилируется из исходного кода, она компилируется в какой-то исполняемый файл?Будет ли приложение на initramfs готово к запуску после того, как у меня будет make install ed (с правильным префиксом и предоставленными зависимостями)?

1 Ответ

1 голос
/ 11 ноября 2011

Требуется ли скомпилированной программе библиотека C - или любая другая библиотека в этом отношении - зависит от того, как она была связана .

В целом, если ваша программа была связана статически тогда у него нет внешних зависимостей - ему нужно только работающее ядро.Исполняемый код любой библиотеки, от которой он зависит, будет включен в конечный исполняемый файл.

Если, с другой стороны, он связан динамически , то ему все еще требуется общий объект файлы библиотек, от которых он зависит.В Linux большинство общих библиотечных объектов (также известных как разделяемые библиотеки ) придерживаются соглашения о наличии имени файла с расширением .so или, в общем, в формате *.so.*.Например, /lib/libssl3.so и /lib/libncurses.so.5.9 являются общими библиотеками в моей системе.

Также возможно иметь исполняемый файл, который статически связан с некоторыми библиотеками и динамически связан с другими.Обычный случай, когда это происходит, когда статические редкие или проприетарные библиотеки связаны между собой, а стандартные системные библиотеки - динамически.

...