The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Разработка Linux-клиента для игры Unreal Tournament 3 прекра..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Заметили полезную информацию ? Пожалуйста добавьте в FAQ на WIKI.
. "Разработка Linux-клиента для игры Unreal Tournament 3 прекра..." +/
Сообщение от Zenitur (?), 18-Дек-10, 02:45 
>> Внимательно читай стандарты LSB и о бинарной совместимости GLIBC :)
> Дурак? На одном glibc напишешь разве что хэлловорлд.

Объясняю на простом примере. Компонент glibc использует почти любая программа, так как это низкоуровневая библиотека. Скомпилированная 8 лет назад с какой-нибудь 2.05 программа спокойно запустится даже в распоследнем 2.21 (числа сам придумываю). А если скомпилировать сегодня в 2.21 и попробовать запустить во вчерашнем 2.20, программа даже не попытается запуститься. Запуск из консол покажет ошибку, что glibc в системе старее, чем тот, с которым скомпилирована библиотека.

Понятно теперь к чему здесь glibc? Если у вас старое железо со старым дистрибутивом, скомпилируйте новое ядро и новый glibc. Первое даст новые устройства, и что бы вы ни подключили, всё заработает. Второе - новые закрытые программы, так как это единственное, что они хотят от системы. Оба этих действия не изменят поведения ни одной поставляемой с дистрибутивом программы.

Так собирают Java. В старом SuSE 9, чтобы работало в любом и старом, и новом дистрибутиве.

Однако существует простой способ сделать так, чтобы однажды скомпилированная программа работала везде. Хоть в самом древнем дистрибутиве, лишь бы ядро 2.6. Статическая линковкка. В файл программы включены все библиотеки, от которых она зависит. Включая glibc. Это увеличивает её размер. Для маленького размера берут старый дистрибутив, либо просто кладут в каталог с программой пару библиотек, которых не предустанавливают в дистрибутивы, или которых нет в старых дистрибутивах.

Статически слинкован Heroes III. Я его запускаю даже в тех системах, где нет 32-битных библоитек. ut2004 не статически слинкован, но он из системы берёт только openal, libSDL-1.2, и OpenGL. Согласитесь, это везде есть.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Разработка Linux-клиента для игры Unreal Tournament 3 прекра..., opennews, 17-Дек-10, 15:11  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру