Автор Тема: как се прави бинарен файл  (Прочетена 2729 пъти)

nov_chovek

  • Напреднали
  • *****
  • Публикации: 536
  • Distribution: Ubuntu 8.10 по принуда
  • Window Manager: Gnome
    • Профил
    • WWW
как се прави бинарен файл
« -: Mar 31, 2008, 17:40 »
Идеята е да се разпространява един бинарен файл, който да не е зависим от конкретната дистрибуция - нещо като инсталатора на VMware и CrossOverOffice, ...... е и скайп '<img'>

В основата си става дума за blenderplayer, който си е опенсорс, обаче аз искам да го направя distro-independent.
 .. та идеи?
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
как се прави бинарен файл
« Отговор #1 -: Mar 31, 2008, 17:47 »
Цитат (nov_chovek @ Март 31 2008,18:40)
Идеята е да се разпространява един бинарен файл, който да не е зависим от конкретната дистрибуция - нещо като инсталатора на VMware и CrossOverOffice, ...... е и скайп '<img'>

В основата си става дума за blenderplayer, който си е опенсорс, обаче аз искам да го направя distro-independent.
 .. та идеи?

АМи най-общо се компилира статично и се вграждат всички библиотеки. Погледни опции като -PIC
Активен

0x2B|~0x2B

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
как се прави бинарен файл
« Отговор #2 -: Mar 31, 2008, 20:12 »
Няма такива филми. Като е статично компилирано нямаш гаранция, че kernel API-то е едно и също, а и има различни архитектури. Това не е проблем на операционната система, проблемът си е генерален.
Активен

"Knowledge is power" - France is Bacon

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
как се прави бинарен файл
« Отговор #3 -: Mar 31, 2008, 20:18 »
Цитат (gat3way @ Март 31 2008,21:12)
Няма такива филми. Като е статично компилирано нямаш гаранция, че kernel API-то е едно и също, а и има различни архитектури. Това не е проблем на операционната система, проблемът си е генерален.

Тук не говорим за различни дистрибуции, макар че в немалка степен си прав и това е една от причините vmware да си компилира един kernel модул ако го няма прекомпилиран. А инсталаторите обикновено са shar файлове
Активен

0x2B|~0x2B

ivo1204

  • Напреднали
  • *****
  • Публикации: 987
    • Профил
как се прави бинарен файл
« Отговор #4 -: Mar 31, 2008, 20:45 »
Цитат
В основата си става дума за blenderplayer, който си е опенсорс, обаче аз искам да го направя distro-independent.

Ами като сорс си е "distro-independent."
Активен

ivo1204

  • Напреднали
  • *****
  • Публикации: 987
    • Профил
как се прави бинарен файл
« Отговор #5 -: Mar 31, 2008, 20:51 »
Има и други чалъми , ама те са "висш пилотаж "  , например  qmake от библиотеките QT .
Активен

nov_chovek

  • Напреднали
  • *****
  • Публикации: 536
  • Distribution: Ubuntu 8.10 по принуда
  • Window Manager: Gnome
    • Профил
    • WWW
как се прави бинарен файл
« Отговор #6 -: Mar 31, 2008, 21:23 »
Цитат
Няма такива филми. Като е статично компилирано нямаш гаранция, че kernel API-то е едно и също, а и има различни архитектури. Това не е проблем на операционната система, проблемът си е генерален.


Архитектурите ясно, ама тогава със скайпа как е направено?
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
как се прави бинарен файл
« Отговор #7 -: Mar 31, 2008, 23:16 »
Ти това със скайпа пробвал ли си да го подкараш примерно на 2.2 ядро? Случаят е брутален, но предполагам дори на 2.4 някъде ще има търканици по въпроса. Може и да е безпроблемно, но вярвай че в тоя случай някой си е поиграл доста да изчисти лошите моменти.

А и що се отнася до 2.6, там пак има някои генерални проблеми, в един момент въвеждат futex-и, ей такива неща.

Но да, с много старание, можеш да направиш предполагам един по-универсален инсталатор. От инсталатора не се гони производителност и особено голяма стабилност, но това не е валидно в общия случай, така че не знам. Най-малкото примерно да се пробваш да направиш същото с някой браузър като например firefox, ще настъпиш такива мотики, каквито не си си и представял..

Апропо, мани ядрата, дори X API-то се променя, променят се и разни message bus-ове характерни за wm-тата, такива неща. Оттам се чупят глупости от сорта на "не мога да copy-paste-вам от този прозорец" и тем подобни глупости. Просто като цяло идеята е лоша. Защо ти е бинарен файл, имаш сорса. Да, има бинарни пакети и те не случайно са обвързани със зависимости от други пакети и версиите им.



Активен

"Knowledge is power" - France is Bacon

nov_chovek

  • Напреднали
  • *****
  • Публикации: 536
  • Distribution: Ubuntu 8.10 по принуда
  • Window Manager: Gnome
    • Профил
    • WWW
как се прави бинарен файл
« Отговор #8 -: Mar 31, 2008, 23:45 »
gat3way: цялата тази патаклама е заради блендер-а. Има към него един блендерплеър, който подкарва файлове правени с блендер. Просто става дума за игра, която обаче върви чрез блендерплеър. Девелопъра иска да разпространява играта и за линукс, обаче ще е доста трудоемко да прави пакети за всички дистрибуции, или пък да дава на хората сами да си компилират блендърплеъра.

Та това ми беше идеята, ама щом е толкова трудно за универсален бинарен файл... ще трябва да прави пакети.
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
как се прави бинарен файл
« Отговор #9 -: Apr 01, 2008, 00:06 »
Ами можеш да направиш пакет за твоята дистрибуция. Може да се намерят и хора, които да ти помогнат да съпортват този пакет и той да влезе в пакетната система на дистрибуцията. Това само допринася за оупънсорс идеята като цяло.
Активен

"Knowledge is power" - France is Bacon

v_badev

  • Напреднали
  • *****
  • Публикации: 1355
    • Профил
как се прави бинарен файл
« Отговор #10 -: Apr 01, 2008, 10:08 »
В общият случай ако компилираш основните зависимости статично ще работи на повечето компютри. Така се правят комерсиалните игри за Linux, Adobe Reader, Skype, Flash и други. Някои хора винаги ще мърморят че не им е направно на пакет, но да правиш и поддържаш пакети за куп дистрибуции не е никак лесна работа.
Активен