Перенос программ между дистрибутивами Linux

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Alexey
незнакомец
Сообщения: 7
Зарегистрирован: 11.11.2009 19:39:16

Перенос программ между дистрибутивами Linux

Сообщение Alexey »

Я начал программировать на Lazarus недавно поэтому прошу помочь разобраться.
Я написал небольшую программку под Ubuntu 8.04, скомпилил, программа работает нормально. Я перенес бинарник на комп приятеля, у которого Ubuntu более новой версии и программа не работать не стала. Ругалась на какую то библиотеку. При проверке оказалось, что эта библиотека установлена на компе, но более новой версии, чем на моём. Нельзя ли как то заставить программу работать на компе с более новыми версиями библиотек? Или надо под каждый новый дистрибутив компилить заново?
Сейчас другого компа нет под рукой, позднее я постараюсь повторить эксперимент с другой версией Ubuntu и выложу точный тект ошибки с указанием на какую библиотеку он жалуется.
Заранее благодарю за любую помощь.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Да, примерно так оно в общем случае и есть. Поскольку оно opensource, бинарная совместимость не особо кого-то волнует.

Иногда может получиться установить библиотеку старой версии вместе с новой, а может даже тупо сделать симлинк на новую библиотеку. Но все зависит от того, что именно поменялось в библиотеке, и что нужно самой библиотеке.
Аватара пользователя
NXP
постоялец
Сообщения: 187
Зарегистрирован: 02.01.2008 15:11:56
Откуда: Воронеж
Контактная информация:

Сообщение NXP »

Даже можно хакнуть конкретную функцию в библиотеке, и подсунуть вместо нее функцию с другой библиотеки.
К примеру, этот полезный проект http://httppc.sourceforge.net/ это наглядно демонстрирует.
Для того, чтобы программировать под Linux и не ломать головы о совместимостях, лучше воспользоваться этой сборочной машиной https://build.opensuse.org/
Она сделает пакеты под любой дистрибутив :)
Ответить