Сегодня я расскажу о том, как создать проект 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:
Вот и все, можно собирать проект. После сборки получим приблизительно такой результат: