Налаштування взаємодії wxWidgets і CodeBlocks
при ОС Ubuntu/Linux

(ілюстрації подано для Linux Mint 18.1 Serena Mate)

Примітка. У подальшому описі використано рекомендації для Ubuntu, перевірені на Linux Mint 18.1 Serena редакції Mate. Цю редакцію вибрано з міркувань невибагливості графічного середовища Gnome2, що дуже важливо для бюджетних організацій. У тому числі загальноосвітніх навчальних закладів. У разі використання операційної системи Linux, яку не підтримують у поточний момент, процес встановлення CodeBlocks 16.01 (пункт 1 подальшого опису) не буде успішно завершено внаслідок спроби звертання до відсутніх репозиторіїв.

  1. Встановити CodeBlocks бажано останної версії, використавши PPA-репозиторій — Personal Packages Archive — персональний архів пакунків. На відміну від репозиторіїв Ubuntu, где зібрано велику кількість пакунків, PPA-репозиторий містить лише окрему версію певної програми. Для встановлення програм з PPA-репозиторію використовують не менеджер програм, а Термінал. Для версії 16.01 потрібно виконати по черзі такі вказівки:

    sudo add-apt-repository ppa:damien-moore/codeblocks-stable
    sudo apt-get update
    sudo apt-get install codeblocks codeblocks-contrib

  2. Завантажити зі сторінки wxWidgets архів (Source Code) останньої або останньої стійкої версії — файл wxWidgets*.tar.bz2. Тут і далі зірочкою * позначено версію. Наприклад, 3.1.1.

  3. У середовищі Терміналу перейти у теку із завантаженим архівом і розпакувати архів вказівкою Терміналу:

    cd Завантаження
    tar -xvf wxWidgets*.tar.bz2

  4. Зайти у теку — результат розпакування архіву — вказівкою Терміналу:

    cd wxWidgets*

  5. Запустити конфігуратор для перевірки наявності всіх залежностей вказівкою Терміналу:

    ./configure

  6. Запустити процес компіляції (збирання) програми вказівкою Терміналу:

    make

    і дочекатися припинення виведення повідомлень, серед яких не має бути повідомлення про помилку (error).

  7. Завершити встановлення, викорис­тавши такі вказівки Терміналу:

    sudo apt-get install checkinstall
    sudo checkinstall


    і погодившись на всі запити, тобто ввівши "у" або натиснувши клавіші Enter.

  8. Скомпілювати прикладиопис англійською), розташовані у теці samples всередині теки wxWidgets* — результату розпакування архіву сирцевого коду wxWidgets*.tar.bz2,

    викорис­тавши такі вказівки Терміналу:

    cd samples
    make

  9. Пересвідчитися у дієздатності програм-прикладів (хоча б деяких), запустивши на виконання виконувані файли, створені всередині тек access, animate, … , xti, розташованих всередині теки samples. Наприклад, calendar має виводити обрані дати (крім першої, вибраною самою програмою).





  10. Пересвідчитися у можливості компілювання програм-прикладів окремo, виконавши всередені відповідної теки таку вказівку Терміналу:

    g++ -g назва_коду.cpp $(wx-config --cxxflags --libs) -o назва_виконуваного_файлу

    Наприклад, для теки calendar ця вказівка може мати такий вигляд:

    g++ -g calendar.cpp $(wx-config --cxxflags --libs) -o tobedone

Примітка. Назва теки збігається з назвою коду — назвою файлу програми-прикладу, який містить ця тека. Переміщення теки, що містить програму-приклад, з wxWidgets*/samples, може призвести до помилки компіляції. Станом на червень 2018 року немає конфігураційних файлів проектів CodeBlocks для програм-прикладів.

Ознайомлення з кодами програм-прикладів потрібно вважати лише першим кроком знайомства з можливостями WxWidget. Наступний крок може бути таким:

Опис створення проекту WxWidjets збігається до пункту 11 з описом при ОС Windows — вказання параметрів конфігурації wxWidgets — виглядом вікна діалогу.

Власне створення проекту почнеться з такого вигляду вікна CodeBlocks.



Алгоритм завантаження прикладів у середовище CodeBlocks з метою подальшого редагування має такий вигляд:

  1. Скопіювати теку з прикладом (для поданих далі ілюстрацій calendar) у зручне для роботи місце.

  2. У середовищі CodeBlocks cтворити порожній проект з такою самою назвою, що має скопійована тека:

    • використати вказівку меню File / New / Project…;

    • вибрати wxWidgets project і натиснути кнопку Go;

    • вибрати wxWidgets 3.0x і натиснути кнопку Next;

    • ввести назву проекту, вказати розташування скопійованої теки і натиснути кнопку Next;

    • при бажанні ввести автора, адреси його електронної пошти та сайту і натиснути кнопку Next;

    • вибрати:
      • Prefered GUI Builder None;
      • Application Type Frame Based;
      і натиснути кнопку Next;

    • обрати Create "Release" configuration і натиснути кнопку Next;

    • серед Other Options обрати Create Empty progect і натиснути кнопку Finish.

  3. Використати вказівку меню Project / Add files… ,

    вказати усі наявні у теці файли з розширенням cpp i h (у даному випадку лише calendar.cpp),

    і натиснути кнопку Відкрити.

  4. Підтвердити вибір цілей, натиснувши кнопку Гаразд.

  5. Скопіювати файл sample.xpm з теки wxWidgets*/samples у теку проекту (для поданої ілюстрації calendar).

    Такий файл, але для іншого зображення, можна створити і самостійно у середовищі редактора растрової графіки. У цьому випадку, можливо, доведеться (у середовищі текстового редактора) виправити його другий рядок, щоб він набув такого вигляду:

    static const char *const sample_xpm[] = {

  6. У середовищі CodeBlocks відкрити всі приєднані файли, знайти рядок:

    #include "../sample.xpm"

    і видалити з нього дві крапки, тобто надати йому такого вигляду:

    #include "sample.xpm"

    (для файла calendar.cpp це 60-ий рядок). Інакше кажучи, врахувати розташування файлу sample.xpm не безпосередньо зовні теки проекту, як надано архівом wxWidgets, а в теці проекту.

  7. Наступні дії виконати лише при роботі з ОС Windows:

    • клацнути правою кнопкою миші на проекті;

    • в контексному меню вибрати Build option;

    • перейти на вкладення Linker settings;

    • натиснути кнопку Edit і у вікні діалогу Edit library

      натиснути кнопку з трикрапкою і вказати розташування бібліотеки libwxmsw31u.a, після чого натиснути кнопку Гаразд;

    • у вікні діалогу Project build options натиснути кнопку Гаразд.

  8. При бажанні змінити у рядках коду з відступом:

    // Create the main application window
    MyFrame *frame = new MyFrame(
       wxT("Calendar wxWidgets sample"),
       wxPoint(50, 50),
       wxSize(450, 340));

    заголовок вікна wxT, верхній лівий кут вікна wxPoint і розміри вікна wxSize у пікселях.

  9. Скомпілювати програму і запустити її на виконання.