Между делом попробовал wxWidgets под Ubuntu
December 7th, 2009 Begemot Posted in Использование
Выпало тут 4 часа в течении которых можно было работать только на ноуте. А там у меня недавно установленная убунта 9.10 х64. Сначала немного побаловался, поразбирался с системой (я вроде доволен) потом решил попробовать вх.
Поставил svn, выкачал trunk из репозитория, вспомнил о том, что как компилировать wxWidgets на линуксе я уже писал, по этой же инструкции собрал библиотеку, собрал пару примеров – clipboard, auidemo – и представляете себе, работает! 🙂
Правда, есть и плохой ньюанс, поработав несколько часов в линуксе, всерьоз задумался а стоит ли туда лезть и портировать свои утилиты, энтузиазма немного поубавилось…
December 7th, 2009 at 10:17 am
Почему возникли сомнения? В Линуксе уже есть такие утилиты? Или нет коммерческого потенциала? Или что-то еще?
December 7th, 2009 at 11:55 am
В методе распространения, я вот задумался чего это под линуксом почти все OS, наверное что бы не собирать 🙂 А вот как распространять шаровару\фривару? ладно еще с процессом установки еще как-то можно решить, просто я не знаком с темой, а вот как со сборкой? Я правильно понимаю что мне придется самому собирать отдельный дистрибутив под все все все? или как?
Да и с коммерческим потенциалом тоже сложно, сначала я думал портировать туда свою фривару, так просто ради fun и опыта, теперь думаю – что что бы эффективно решать вопросы, собирать, поддеживать пользователей это надо туда конкретно погружаться… а я не готов
December 7th, 2009 at 12:06 pm
Я бы точно поленился создавать отдельные пакеты для каждого дистрибутива Линукса, по крайней мере в первое время.
Если правильно (статически) собрать программу, то можно ее распространять в бинарном виде. Например, FileZilla я скачивал как-то в таком виде, и она работала без проблем. Просто распаковал архив и запустил исполняемый файл. Кстати, тоже написана на wxWidgets.
Бинарную версию можно также распространять с инсталлятором, например, BitRock (платный). Есть еще бесплатный, но я забыл название. То есть программа устанавливается практически как в Windows.
Насчет коммерческого потенциала Линукса для большинства программ я тоже очень сильно сомневаюсь. Знаю только, что есть примеры сравнительно успешных инди игр.
December 7th, 2009 at 12:42 pm
К сожалению… все твои вопросы не в бровь а в глаз. И это ты еще не пробовал заставить работать принтер Canon. Не говоря уже о том чтобы заставить работать сетевой принтер. 1С и игры опять таки.
December 7th, 2009 at 1:01 pm
Ребята оффтопик. Помогите работать со сканером желательно через WIA. Я нашел тут пример http://www.winapi.org/forum/viewtopic.php?p=7325&sid=5d835b73b19366179e8825ca00bf070a там где с WIA. Но там через DeviceDlg, а мне бы без этого диалога как-нибудь самому задать параметры. Простите что тут спрашиваю, но больше людей с опытом С++ я не нашел.
December 7th, 2009 at 1:33 pm
С wxWidgets в Убунте все хорошо, пока ты остаешься на своей машине, где все уже настроено и откомпилировано. Стоит Code::Blocks, библиотека wxWidgets скомпилирована с рекомендованными им ключами, программы компилируются и запускаются. Благодать.
Пробую поставить MultiGet (тоже на wxWidgets писан). Не запускается. В чем дело? Неправильная версия библиотеки. Пробую свою программу на другой машине с Дебиан. Не запускается – опять неправильная версия библиотеки… Что же ее, таскать с собой, как Qt? Или статически линковать и набирать мегабайты веса? Пока не нашел кошерного решения.
Кстати, “неправильная версия библиотеки” может отличаться только ключом “совместимость с 2.6” при компиляции.
December 7th, 2009 at 2:38 pm
По-моему, компилировать статически или таскать с собой динамические библиотеки вполне кошерно. Размер, конечно, увеличится где-то на 5 мегабайт, и это минус. Но настолько ли он существенный?
December 7th, 2009 at 2:42 pm
Boris, иди на http://wxforum.shadonet.com в русскую, а лучше английскую ветку – там намного более народу…
Adamos, Я на винде всегда статически линкую, во избежание…
December 7th, 2009 at 3:57 pm
В Линуксах вроде бы считается хорошим тоном не линковать лишнего, а грамотно разрулить зависимости – например, на случай, что в старой библиотеке нашлась дыра.
Тот же MultiGet идет в репозитории без статических библиотек (иначе бы он у меня не ругался). Видимо, ориентируется на пакет wx-common из репозитория?
Подозреваю, что это Code::Blocks идет поперек стандарта в своем руководстве по установке и компиляции из svn (а в другом виде он неработоспособен).
Или это я где-то пропустил “небесный инструктаж”…
December 8th, 2009 at 3:33 pm
используйте сборочные системы
например http://www.freesource.info/wiki/korinf&
несколько различных версий библиотеки в системе непроблема – нужно только ориентироватся на те версии что в составе дистрибутива, иначе только статически собирать, или динамически но со своим именем, если несколько прог, что-то типа begemotovwx-common пакета делать.
December 9th, 2009 at 9:45 am
Ну проблема сборки, вобщем-то, не особо острая. Вполне достаточно выложить тарбол с сырцами и пакет в deb и/или rpm. Если прога будет востребована, то скоро мейнтейнеры дистрибутивов её сами в репы добавят. В любом случае, софт из реп конечным пользователям ставить гораздо удобнее.
December 9th, 2009 at 9:49 am
ну если с сорцами то наверное да все просто…
December 9th, 2009 at 11:20 am
А выхода, похоже, всего два – либо открывать сорцы, либо делать свои пакеты.
Промежуточные варианты типа сорцов с блобами для коммерческого софта провальны – труЪ будут гнобить как буржуя, а юзеры ныть про необходимость компиляции.
Кстати, даже у грандов индустрии с Линуксом проблемы: например, Adobe Reader имеет свой установщик, который для совместимости с зоопарком дистров ставится в /opt. При этом он не проверяет, есть ли там хоть один свободный кластер (а ему их требуется немало), и Debian Lenny, свежеустановленный с настройками по умолчанию, валится с заполненным системным разделом. Вот и вся совместимость 😉
Так что последний абзац поста очень даже верен. Никакого смысла тянуть весь этот геморрой ради призрачной надежды на новых пользователей пока нет.
December 9th, 2009 at 6:52 pm
А без сырцов софт в Линуксе всё равно не котируется – что бы проприетарная прога стала популярной Линуксе она должна иметь какие-то выдающиеся свойства и не иметь аналогов.
December 9th, 2009 at 7:32 pm
хм, посмотрим, посмотрим 🙂