/ Избягване на твърде специфични зависимости - c, linux, build, зависимости, споделени библиотеки

Избягването на твърде специфични зависимости - c, linux, build, зависимости, споделени библиотеки

Използвам споделена C библиотека на Linux, която еразпределени в двоична форма. Проблемът е, че зависимостите са настроени да изискват точно наличните версии на машината за разработка. Например, всяко съобщение изисква (в момента) най-новия glibc и само точната версия на libreadline на тяхната система.

Свързах се с разработчиците и те не сазнам какво да правят. Доколкото мога да кажа, те не използват съзнателно най-новите функции, така че библиотеката трябва да продължи да работи с по-стари зависимости. Мисля, че те използват gcc в Linux, но те също използват сложна система за управление на други компилатори, за да създадат Windows и Unix.

Как и до каква степен можете да управлявате процеса на изграждане, така че библиотеката да изисква зависимости само от достатъчна версия и да приемат по-късни версии?

Това е свързан въпрос.

Редактиране: За да е ясно, искам да знам как да изграждам програмитака че те ще приемат зависимости с конкретен номер на версия или по-късни номера. Независимо дали разработчиците го съставят или аз правя, искам да мога да разпространя двоичен файл, който не изисква точно версиите на зависимости, налични в средата за изграждане.

Редактиране 2: След като преформулирах въпроса, осъзнах, че това е било обхванато много пъти преди това. Някои от най-добрите въпроси и отговори:

Разгръщането на Yesod в Heroku, не може да се изгради статично

Компилирайте с по-стари libc

Свързване с стара версия на libc

Как мога да се свържа към конкретна версия на glibc?

Отговори:

1 за отговор № 1

Това не е много вдъхновяващо доверие. Те трябва да се основават на стабилна базова версия, може просто да бъде виртуална инсталация. Някои версии на Linux копират среда за изграждане, така че пакетите не са свързани с актуализирани версии на библиотеките.

Услугата за изграждане на openSUSE, позволява на devolopers да създават двоични пакети за голямо разнообразие http://openbuildservice.org/about/

IIRC readline е GPL програма и се проверява на http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html#Availability предполага, че е GPL v 3, така че може да са внарушение на GPL, ако те използват libreadline функции и трябва да ви предостави източника на тяхната библиотека. Не съм сигурен дали имате предвид зависимостта rpm / apt, или библиотеката им всъщност нарича libreadline.

Винаги можете да извличате файлове от rpm или apt пакети, ако е необходимо, за да избегнете проблеми със софтуерния мениджър, причинени от лошо опаковане.