Skip to content Skip to footer

Собираем сторонние компоненты wxWidgets в Code::Blocks

Сегодня я расскажу о том, как создать проект Code::Blocks, использующий в своей работе сторонние библиотеки. В качестве сторонней библиотеки мы возьмем библиотеку wxPropertyGrid, предоставляющую возможность встроить редактор свойств в приложение.

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

Исходный код тестового приложения:

#include <wx/wx.h>
#include <wx/propgrid/propgrid.h>

class wxTestApp : public wxApp
{
    virtual bool OnInit();
};

DECLARE_APP(wxTestApp)

class wxTestMainFrame : public wxFrame
{
    void CreateControls()
    {
        wxBoxSizer * sizer = new wxBoxSizer(wxVERTICAL);
        SetSizer(sizer);
        wxPropertyGrid * propgrid = new wxPropertyGrid(this, wxNewId(),
wxDefaultPosition, wxDefaultSize, 0);
        sizer->Add(propgrid, 1, wxEXPAND);
    }
public:
    wxTestMainFrame()
    {
        Create(NULL);
    }
    bool Create(wxWindow * parent, wxWindowID id = wxID_ANY, const wxString & title = wxT("wxTest"))
    {
        bool res = wxFrame::Create(parent, id, title);
        if(res)
        {
            CreateControls();
        }
        return res;
    }
};

bool wxTestApp::OnInit()
{
    wxTestMainFrame * frame = new wxTestMainFrame();
    SetTopWindow(frame);
    frame->Centre();
    frame->Show();
    return true;
}

IMPLEMENT_APP(wxTestApp)

После того, как мы создали тестовое приложение, нам необходимо добавить библиотеку wxPropertyGrid в workspace. wxPropertyGrid распространяется в виде архива с исходным кодом, который мы распакуем в подкаталог propgrid. Далее в Code::Blocks создаем новый проект статической библиотеки:


Нам необходимо чтобы файл проекта был создан в папке propgrid/build, поэтому этот параметр необходимо подправить вручную:


Изменяем параметры таким образом чтобы наша бибилиотека создавалась в каталоге propgrid/lib (чего-то мне показалось, что параметр Output dir в текущей версии Code::Blocks не работает):


Далее идем в настройки проекта и видим, что в Output filename у нас записано немного не то, что мы указывали при создании проекта, а именно, файл библиотеки с текущими параметрами будет создаваться в каталоге propgrid/build (в каталоге с проектом). Изменяем параметр Output filename и указываем новый путь вывода статической библиотеки:


Теперь нам необходимо указать, в какой папке наш проект статической библиотеки будет искать заголовочные файлы. Пути к заголовочным файлам необходимо указать в настройках общих для обеих сборок (Debug и Release):


Для того, чтобы проект библиотеки был собран с такими же настройками как и наше тестовое приложение (это требование обязательно), нам необходимо скопировать список директив компилятора из проекта приложения в проект библиотеки:


Далее проставляем зависимости:


Добавляем в список каталогов для поиска заголовочных файлов каталог с заголовочными файлами wxPopertyGrid:


В список каталогов для поиска библиотек добавляем путь к папке со статической библиотекой wxPropertyGrid:


В настройках линкера в список зависимостей добавляем статическую библиотеку wxPropertyGrid:


Вот и все, можно собирать проект. После сборки получим приблизительно такой результат:

Скачать пример

Leave a comment

0.0/5