>MOPSLinux 5 = Slackware 11
>
>Я начинающий но уже продвинутый. Не могу сообразить принципы стандартной сборки приложения
>linux.
>
>Вопросы возникли при попытках сборки vlc player. Это здоровенный можно сказать мультимедийный
>фрэймворк. Чтобы его собрать нужно ~30 других пакетов которые и между
>собой тоже связаны. Там есть автоматизация сборки всех нужных пакетов, но
>с первого раза не получилось. Процесс несколько раз стопорился и в
>каждом случае приходилось вручную разбираться с несобирающимся пакетом. И когда он
>наконец таки собрался, заработал тоже не сразу. Пришлось пересобирать несколько раз
>а на каждую пересборку не меньше 40 минут уходило. Я злился! Неудивительно.
>
>Не могу сообразить порядок вообще т.е.
>1. autotools делают файлы Makefile и configure
autotools делают configure, потом configure делает Makefile'ы и config.h'ы.
Делают они это преотвратно, IMHO.
>2. gcc и g++ собирает файлы "o" из файлов c/cpp + h/hpp
Вроде того.
>3. ??? собирает из нескольких "o" файл "a"
man ar
>4. ??? из "a" делает файл "so"
man ld
info gcc
>Статическая сборка - это включение кусков кода из одного "o" в другой
>?
Статическая сборка - это сборка без использования динамических библиотек.
>Где определяется что программа будет не статической а использовать "so" и какие
>? Т.е. например пакет ffmpeg у меня уже есть в /usr/local.
>Сборочный скрипт vlc качает ffmpeg в свой подкаталог и как быть
>уверенным что при сборке будет использоваться именно скаченная версия
man ldconfig
Плюс полезные переменные LIBRAY_PATH и LD_LIBRARY_PATH
>Что делает ldconfig? Т.е. не может ли он тоже повлиять на то
>какая версия ffmpeg будет использоваться. Ведь ldconfig при каждой загрузке запускается
>и что то связывает.
Не "что-то связывает", а устанавливает порядок, в котором по стандартным каталогам
ищутся библиотеки.
>Как узнать версию файла "a" или "so" и вообще понятие версия библиотеки
>в линуксе что означает. Я виндузятник поэтому о версии представление такое
>- "правой кнопкой - свойства файла". Пробовал readelf но он выдает
>нечто большое которое явно не совпадает просто с цифрой в имени
>файла после "so". Эта цифра как я понимаю и есть версия?
Эта "цифра" - а точнее их набор - и есть версия.
>Но внутри файла версии нет что ли ? А у файлов "a" где тогда версия ?
"Внутри файла" обычно нет версии. Ни у .so, ни у .a.
>
>я примерно знаю что надо читать: elf + libtool + ld +
>ldconfig + флаги -L -I -l но как говорил Киса Воробьянинов
>хочется чтобы побыстрее :) Если не трудно объясните пожалуйста в двух
>словах.
А Вы пойдете к дантисту, который обучался по книжке "A complete idiot's
guide to dental care"? ;)