Между делом попробовал wxWidgets под Ubuntu

December 7th, 2009 Begemot Posted in Использование

Выпало тут 4 часа в течении которых можно было работать только на ноуте. А там у меня недавно установленная убунта 9.10 х64. Сначала немного побаловался, поразбирался с системой (я вроде доволен) потом решил попробовать вх.

Поставил svn, выкачал trunk из репозитория, вспомнил о том, что как компилировать wxWidgets на линуксе я уже писал, по этой же инструкции собрал библиотеку, собрал пару примеров – clipboard, auidemo – и представляете себе, работает! 🙂

Правда, есть и плохой ньюанс, поработав несколько часов в линуксе, всерьоз задумался а стоит ли туда лезть и портировать свои утилиты, энтузиазма немного поубавилось…

Related:

15 Responses to “Между делом попробовал wxWidgets под Ubuntu”

  1. Почему возникли сомнения? В Линуксе уже есть такие утилиты? Или нет коммерческого потенциала? Или что-то еще?

  2. В методе распространения, я вот задумался чего это под линуксом почти все OS, наверное что бы не собирать 🙂 А вот как распространять шаровару\фривару? ладно еще с процессом установки еще как-то можно решить, просто я не знаком с темой, а вот как со сборкой? Я правильно понимаю что мне придется самому собирать отдельный дистрибутив под все все все? или как?

    Да и с коммерческим потенциалом тоже сложно, сначала я думал портировать туда свою фривару, так просто ради fun и опыта, теперь думаю – что что бы эффективно решать вопросы, собирать, поддеживать пользователей это надо туда конкретно погружаться… а я не готов

  3. Я бы точно поленился создавать отдельные пакеты для каждого дистрибутива Линукса, по крайней мере в первое время.

    Если правильно (статически) собрать программу, то можно ее распространять в бинарном виде. Например, FileZilla я скачивал как-то в таком виде, и она работала без проблем. Просто распаковал архив и запустил исполняемый файл. Кстати, тоже написана на wxWidgets.

    Бинарную версию можно также распространять с инсталлятором, например, BitRock (платный). Есть еще бесплатный, но я забыл название. То есть программа устанавливается практически как в Windows.

    Насчет коммерческого потенциала Линукса для большинства программ я тоже очень сильно сомневаюсь. Знаю только, что есть примеры сравнительно успешных инди игр.

  4. К сожалению… все твои вопросы не в бровь а в глаз. И это ты еще не пробовал заставить работать принтер Canon. Не говоря уже о том чтобы заставить работать сетевой принтер. 1С и игры опять таки.

  5. Ребята оффтопик. Помогите работать со сканером желательно через WIA. Я нашел тут пример http://www.winapi.org/forum/viewtopic.php?p=7325&sid=5d835b73b19366179e8825ca00bf070a там где с WIA. Но там через DeviceDlg, а мне бы без этого диалога как-нибудь самому задать параметры. Простите что тут спрашиваю, но больше людей с опытом С++ я не нашел.

  6. С wxWidgets в Убунте все хорошо, пока ты остаешься на своей машине, где все уже настроено и откомпилировано. Стоит Code::Blocks, библиотека wxWidgets скомпилирована с рекомендованными им ключами, программы компилируются и запускаются. Благодать.
    Пробую поставить MultiGet (тоже на wxWidgets писан). Не запускается. В чем дело? Неправильная версия библиотеки. Пробую свою программу на другой машине с Дебиан. Не запускается – опять неправильная версия библиотеки… Что же ее, таскать с собой, как Qt? Или статически линковать и набирать мегабайты веса? Пока не нашел кошерного решения.
    Кстати, “неправильная версия библиотеки” может отличаться только ключом “совместимость с 2.6” при компиляции.

  7. По-моему, компилировать статически или таскать с собой динамические библиотеки вполне кошерно. Размер, конечно, увеличится где-то на 5 мегабайт, и это минус. Но настолько ли он существенный?

  8. Boris, иди на http://wxforum.shadonet.com в русскую, а лучше английскую ветку – там намного более народу…

    Adamos, Я на винде всегда статически линкую, во избежание…

  9. В Линуксах вроде бы считается хорошим тоном не линковать лишнего, а грамотно разрулить зависимости – например, на случай, что в старой библиотеке нашлась дыра.
    Тот же MultiGet идет в репозитории без статических библиотек (иначе бы он у меня не ругался). Видимо, ориентируется на пакет wx-common из репозитория?
    Подозреваю, что это Code::Blocks идет поперек стандарта в своем руководстве по установке и компиляции из svn (а в другом виде он неработоспособен).
    Или это я где-то пропустил “небесный инструктаж”…

  10. используйте сборочные системы
    например http://www.freesource.info/wiki/korinf&
    несколько различных версий библиотеки в системе непроблема – нужно только ориентироватся на те версии что в составе дистрибутива, иначе только статически собирать, или динамически но со своим именем, если несколько прог, что-то типа begemotovwx-common пакета делать.

  11. Ну проблема сборки, вобщем-то, не особо острая. Вполне достаточно выложить тарбол с сырцами и пакет в deb и/или rpm. Если прога будет востребована, то скоро мейнтейнеры дистрибутивов её сами в репы добавят. В любом случае, софт из реп конечным пользователям ставить гораздо удобнее.

  12. ну если с сорцами то наверное да все просто…

  13. А выхода, похоже, всего два – либо открывать сорцы, либо делать свои пакеты.
    Промежуточные варианты типа сорцов с блобами для коммерческого софта провальны – труЪ будут гнобить как буржуя, а юзеры ныть про необходимость компиляции.
    Кстати, даже у грандов индустрии с Линуксом проблемы: например, Adobe Reader имеет свой установщик, который для совместимости с зоопарком дистров ставится в /opt. При этом он не проверяет, есть ли там хоть один свободный кластер (а ему их требуется немало), и Debian Lenny, свежеустановленный с настройками по умолчанию, валится с заполненным системным разделом. Вот и вся совместимость 😉
    Так что последний абзац поста очень даже верен. Никакого смысла тянуть весь этот геморрой ради призрачной надежды на новых пользователей пока нет.

  14. А без сырцов софт в Линуксе всё равно не котируется – что бы проприетарная прога стала популярной Линуксе она должна иметь какие-то выдающиеся свойства и не иметь аналогов.

  15. хм, посмотрим, посмотрим 🙂