Разработка на коленке

"тут должна быть красивая цитата о программировании"

Eclipse, Linux и wxWidgets from sources

2010-08-24 18:50

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

Установка wxwidgets на ubuntu 9.10 из исходников.

Нужна версия не ниже 2.8.11, так как только начиная с этой версии в виджетах есть необходимый мне функционал для работы с xml.

Ставим сразу из исходников.

  1. Устанавливаем библиотеки, необходимые для компиляции виджетов

    sudo apt-get install libgtk2.0-0 libgtk2.0-0-dbg libgtk2.0-dev
    
  2. Распаковываем архив с виджетами. Далее по пунктам.

    tar xzf wxGTK-2.8.11.tar.gz
    cd wxGTK-2.8.11
    mkdir build-gtk
    cd build-gtk/
    ../configure --with-gtk --enable-unicode
    make
    sudo make install
    sudo ldconfig
    
    cd ../
    
    mkdir build-gtkd
    cd build-gtkd/
    ../configure --with-gtk --enable-unicode --enable-debug --enable-mem_tracing --enable-debug_cntxt
    make
    sudo make install
    sudo ldconfig
    
  3. Устанавливаем wxPropertyGrid

    tar xzf wxpropgrid-1.4.12-src.tar.gz
    cd propgrid/
    mkdir build-release
    cd build-release/
    ../configure --enable-unicode --disable-debug
    make
    sudo make install
    sudo ldconfig
    
    cd ../
    
    mkdir build-debug
    cd build-debug/
    ../configure --enable-unicode --enable-debug
    make
    sudo make install
    sudo ldconfig
    
  4. Для сборки проектов с wxPropertyGrid в линкер нужно добавлять lwxcode_gtk2ud_propgrid-2.8 (отладка) или lwxcode_gtk2u_propgrid-2.8 (релиз)

  5. Нужно сделать симлинки на пути к инклюдам, чтобы эклипс их нормально ресолвил

    cd /usr/include/
    sudo ln -sv /usr/local/include/wx-2.8/wx wx
    cd wx/
    sudo ln -sv /usr/local/include/wx/propgrid propgrid
    

Eclipse, wxWidgets и Linux

2010-06-21 12:25

Где-то пол года назад я подбирал себе среду разработки для С++ в Linux (C++ IDE for Linux developer). Как один из вариантов я выбрал Codelite. Но вчера решил снова попробовать Eclipse. Только на это раз для разработки проектов, в которых используется wxWidgets (в Codelite это не проблема, так как есть шаблоны для таких проектов).

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

Итак, собравшись духом, я полез в гугл. И всё у меня заработало через 3 минуты, за которые я нашёл мануал, прописал флаги и подключил нестандартные библиотеки.

Мануал прост до безобразия, нужно просто выставить флаги в трёх местах (кому не нужен чистый С, то и в двух)

Цитата мануала, чтобы не искать в следующий раз.

Eclipse CDT >3.0.0 and <4.0.0
The "All Options" Textfield is no longer editable in Eclipse CDT 3.0.0 instead you have to follow these instructions:
Create a new, managed C++ project.
Add a new file to the project (i.e. "main.cpp" ), and go to project properties.
Select "C/C++ Build" and then "Settings".
Select "GCC C++ Compiler" and the underlying "Miscellaneous" tab. Append "`wx-config --cxxflags`" to the "Other flags" edit field. Don't forget the `backquotes`!
Select "GCC C++ Linker" and again the underlying "Miscellaneous" tab. Append "`wx-config --libs`" to the "Linker flags" edit field. Don't forget the `backquotes`!
Optional: Select "GCC C Compiler" and the underlying "Miscellaneous" tab. Append "`wx-config --cflags`" to the "Other flags" edit field. You are not likely to need this
You may have to add /usr/local/lib to your LD_LIBRARY_PATH in the C/C++ Build->Environment tab (but you shouldn't since wx-config's cxxflags do that for you)

Всё уже придумано до нас: wxPropertyGrid

2010-03-19 22:16

Наверно около года назад искал класс в библиотеке wxWidgets, который был реализовывал функционал PropertyList. Поискал, поспрашивал на форумах, да и забыл.

Но вот настал момент, и в одной моей программе (специализированный CAD для энергетиков) мне такая штука ну очень понадобилась. Ну и чтобы не морочить себе лишний раз голову, я просто взял исходники wxformbuilder'a и посмотрел как оно там сделано. Оказалось, что сделано при помощи wxPropertyGrid. Вроде как класс войдёт в следующий релиз библиотеки, чему буду очень рад.

C++ IDE for Linux developer

2010-01-07 21:44

Ну раз уж так случилось, что я написал свой первый кроссплатформенный хелло ворлд, то пора задуматься и о выборе инструмента. Критерии выбора:

  1. Много места для рабочего пространства, т.е. всякие там тулбары, меню, заголовки табов и т.п. должны быть минимального размера и при необходимости их можно попрятать.
  2. Нормальная система горячих клавиш.
  3. Нормальная интеграция с компилятором (gcc/g++), чтобы подсвечивала все сообщения об ошибках в коде, удобная навигация по ним.
  4. Желательно, чтобы были шаблоны проектов для wxWidgets, или их можно было легко создать.

Итак, кандидатами стали:

  1. VIM.
  2. Eclipse+CDT.
  3. Netbeans, SunStudio.
  4. CodeBlocks.
  5. Codelite.
  6. KDevelop.
  7. Anjuta.

Помимо этого опробовал ещё несколько штук абсолютно сырых IDE, которые мне совсем не понравились. Посмотрел ещё в сторону Emacs, но так как я уже давно стал пользователем вима, то переходить во вражеский лагерь нет желания. А теперь, по порядку.

  1. VIM. К этому редактару я питаю слабость. Он мне очень импонирует своими режимами редактирования тескта, навигацией по тексту, полной настраиваемостью и минималистичностью. Плюсы: САМОЕ большое свободное пространство для кода, минималистичен, настраивается всё что хочешь, интеграция с компилятором есть. Минусы: это всё ж таки текстовый редактор, а не IDE. Из коробки нет дерева проектов, нет шаблонов для wxWidgets, мейкфалом нужно заниматься самому.
  2. Eclipse+CDT. Эту связку я использовал под виндовс, когда только начинал писать, используя wxWidgets. Для меня он привычен, так как я писал в нём ещё на Java, PHP, Perl, Python, после чего перешёл на Aptana (что тоже является эклипсом). Какое-то время программировал во FlexBuilder, а это тоже эклипс. Так что ничего привычнее для меня нет. Плюсы: много места для кода, развитая и привычная система горячих клавиш, плагинами расширяется до всемогущего комбайна. Минусы: кушает много памяти, нет заготовок для wxWidgets.
  3. Netbeans, SunStudio. Это, по сути, одно и тоже. Возможно, что SunStudio использует нетбинс — не проверял. Плюсы: красиво, душевно... Панели настраиваются, куча всяких профилировщиков, дерево проекта, шустрое автодополнение (но какое-то корявое, не всегда предлагает список на выбор). Плюсы для мигрирующих с виндовс: свои шрифты, очень похожие на стандартные VisualStudio и Windows. Минусы: слишком цветасто, мне в таком трудно работать, требователен к ресурсам (потому что Java), место для кода освободил потратив минут 10 на поиск нужной опции в настройках (убирал лишние тулбары и делал меньше иконки).
  4. CodeBlocks. Работал с ним ещё до Eclipse+CDT. Даже привык к этой среде разработки. Плюсы: шаблоны для wxWidgets, интеграция с формошлёпками для виджетов, много места для кода, мало ест ресурсов, минималистичен, с горячими клавишами тоже всё нормально. Минусы: код для wxWidgets-приложения генерится некрасивый, но это следствие интеграции с wxFormBuilder (вообще, тут по способу работы с ГУИ CodeBlocks очень похож на Borland C++Builder). Тут можно создавать пустой проект и добавлять свои классы, но тогда придётся как-то иначе использовать прелести формошлёпства.
  5. Codelite. Более равзитая, чем CodeBlocks. Интегрирован с системой контроля версий. С ней поработал мало, поэтому взгляд поверхностный. Плюсы: тоже, что и у CodeBlocks. В добавок эта IDE более развита, больше примочек. Минусы: пока не найдены, но наверняка есть.
  6. KDevelop. KDE-шное, с большими икноками. Ставил как-то и до этого, ещё когда на ноуте стоял Debian (сейчас Ubuntu). Не смог справиться с этой средой, чтобы хоть как-то проверить её. Поэтому решил, что она не для меня, во всяком случае пока.
  7. Anjuta. Минималистична, с большими икноками, до этого никогда не ставил. WxWidgets с ходу не подхватила. Плюсы: есть заготовка для wxWidgets, настраивается почти всё, в файлы добавляется текст с пояснением о лицензии (думаю, что это важно для opensource). Минусы: какое-то странное дерево проектов, может оно содержит что-то важное, но я не понял, зачем мне нужны там такие файлы, как README, AUTHORS, NEWS и т.п. наверно это свзязано с идеологией этой IDE, которая мне неизвестна.

ИТОГО: Для себя я выберу на ближайшее время следующее: VIM, Codelite, Netbeans.

  1. VIM мне нравится как текстовый редактор, я в нём довольно много работаю и уже привык его vimdiff, split и многому другому, что делает работу удобней. Я придерживаюсь мнения, что в Linux нет отдельных IDE, потому что Linux — это и есть IDE.
  2. Codelite мне понравился своей интеграцией с wxWidgets и кучей плагинов.
  3. Netbeans — профилировщиками, которые дают возможность оценить нагрузку на процессор, память, узнать количество нитей.

Здравствуй кроссплатформенность!

2010-01-02 21:22

Ну поскольку я много времени провожу в linux, а в последнее время у меня из виндов даже нет выхода в сеть, то и программы свои пора тестировать и тут. GUI под Linux не писал до этого никогда. Web - не в счёт. Поэтому всё для меня было ново и радостно.

На данный момент у меня стоит Ubuntu 9.10. Раньше пользовался Debian Etch, Lenny.

Итак, сначала установил себе всё что нужно для счастливой жизни с виджетами под Linux, пользуясь мануалом. wxPython тоже установил до кучи, потому что очень люблю этот язык и часто его использую.

Затем стал подбирать себе среду разработки. Пока что окончательный выбор не сделан, просто установил себе то, что понравилось по виду и Eclipse CDT по старой памяти. Проект пересобирал в Codelite.

Затем взял исходники проекта, пересобрал его и запустил. Получилась вот такая красота:

todomanager in linux

Так что теперь я могу с уверенностью говорить, что свой первый кроссплатформенный Hello world! я написал. Вроде бы мелочь, но очень радует душу.

  • 1 / 1