LINUX.ORG.RU

Как грамотно слинковать приложение для распространения в бинарном виде на другие ПК?

 , , , ,


0

2

Добрый день.

Написал GUI-приложение (игру) с использованием SDL, OpenAL, ну и всяких там libpng. Задача - скомпилировать всё так, чтобы результат можно было распространять в бинарном виде на другие ПК и чтобы не было проблем с зависимостями.

Изначально планировал положить в папку все основные .so-файлы, которые выдаёт ldd mygame. Но, во-первых, я не уверен, что это правильное решение, а во-вторых, упёрся как минимум в одну дебильную проблему. Я работаю в Debian 9, в которой пакет libSDL2 имеет версию 2.0.5+dfsg1-2. При запуске на виртуальной машине с чистым Debian 8 получаю ./libSDL2-2.0.so.0: undefined symbol: wl_proxy_marshal_constructor_versioned. При этом, если пакет libSDL2 установить в Debian 8 (версия пакета 2.0.2+dfsg1-6), все работает. Что ж это, брать более старую версию?

Чистый Ubuntu 12.04 ругается на отсутствие libXss.so.1, libwayland-client.so.0 и др., которых в папке с игрой действительно нет и я не уверен, при чём тут вообще wayland.

Кстати, в папку даже положил libstdc++.so.6, иначе ругается на version CXXABI_1.3.9 not found, version GLIBCXX 3.4.21 not found и т.д., -static-libstdc++ не дает никакого эффекта.

Короче, как грамотно поступить-то? Для справки, некоторые библиотеки под LGPL, их надо линковать только динамически. Но большинство под лицензией BSD/MIT/ZLib/WTFPL.



Последнее исправление: cetjs2 (всего исправлений: 1)

Ответ на: комментарий от timdorohin

Так если qml и javascript позволяют, почему питон не позволяет? Вполне успешно используется. То же самое с tk и tcl, те в питоне вообще с доисторических времён (очень плохой выбор для приложения).

А ещё я видел можно заскриптовать как угодно фотошоп/3дмакс/блендер (и кучу всего другого) из питона в пару строк, кто ещё такое покажет?

Кстати, насколько qml проник в кути? Биндинги питона в коде кутей теперь вроде тоже официально допиливают.

anonymous
()

Автор, ну ты где? Я так долго собирал информацию, а ты не пишешь

ZenitharChampion ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.