Главная :: Программы для программирования :: wxWidgets :: Сборка библиотеки wxWidgets под ОС Windows
Программиста спрашивают: Скажите пожалуиста, который час? Программист: Который час, если вас это прикалывает девушка.

Сборка библиотеки wxWidgets под ОС Windows

В установке wxWidgets под ОС Windows нет ничего сложного, главное следовать приведенной ниже инструкции. Перед сборкой wxWidgets необходимо установить компилятор C++ (MinGW) и командную среду MSYS (т.е. то, в чем мы будем собирать). Ссылки на все необходимые файлы приведены в конце статьи.

В качестве компилятора можно выбрать несколько вариантов, мы остановим свой выбор на MinGW (Minimalist GNU for Windows) (www.mingw.org) - минимальный порт (т.е. минимальное количество библиотек, необходимое для сборки приложений в среде Windows) стандартного в среде GNU/Linux компилятора GCC (GNU Compiler Collection). Данный компилятор независим и в нем можно писать консольные приложения на C/C++ и без wxWidgets (более того, они будут переносимы на GNU/Linux). Для минимальной установки нам потребуются следующие пакеты:

Архивы распаковываем в папку на C диске C:\mingw. Для удобства установки, мы подготовили архив с уже собранной папкой mingw. Все, что нужно сделать - распаковать архив в корень диска C. Установка компилятора завершена.

Установим среду для работы с компилятором MinGW. В качестве командной оболочки воспользуемся MSYS: A Minimal SYStem минимальная система с POSIX (Portable Operating Systems Interface - Интерфейс переносимых операционных систем) совместимым Борн/Bourne шеллом представляет собой коллекцию UNIX-команд необходимых для полноценной работы с компилятором MinGW, хотя и не ограничивается только им.

Необходимо три пакета:

Последовательно запускаем файлы и следуем указаниям программы, а архив распаковываем в папку C:\msys. MSYS запускается через соответствующую иконку на рабочем столе. Прописываем в переменной окружения PATH пути до исполняемых файлов C:\mingw и C:\msys (Панель управления → Система → Дополнительно → Переменные среды).

Установка завершена, осталось только проверить, что все установилось правильно. Для этого набираем (в папке C:\msys\1.0\home) программу (hello.c):

#include "stdio.h"

int main() {
  printf("Hello, world!!!\n");
  return 0;
}

Собираем ее с помощью команды gcc hello.c и получаем файл a.exe. Запускаем его и смотрим результат (вывод в консоле строчки Hello, world!!!). Замечательно! Теперь у вас есть компилятор C++ и рабочая среда.

Перейдем к установке wxWidgets. Для этого распаковываем архив и исходными кодами в папку C:\ (в архиве уже есть папка wxMSW-2.8.9). Запускаем MSYS и переходим в каталог C:\wxMSW-2.8.9 командой cd c:wxMSW-2.8.9 (учтите, что здесь важен регистр, т.е. wxMSW и wxmsw - это разные папки).

Следующий шаг - сборка библиотеки. Проявляя чудеса дальновидности, мы проведем сборку в двух конфигурациях: отладочной (debug) и окончательной (release). Но, для начала, рассмотрим основные опции, которые влияют на сборку библиотеки (в дальнейших примерах вы можете менять опции на те, что вам больше всего подходят):

Полный список опций вы можете получить по команде wx-config --help (предварительно зайдите в папку с исходниками wxWidgets cd c:wxMSW-2.8.9).

Процесс сборки библиотеки стандартный для ОС GNU/Linux: сначала идет конфигурация (скрипт configure), потом сборка (make) и установка (make install). Начнем с debug-сборки. Переходим в папку с исходниками cd c:wxMSW-2.8.9, создаем папку debug mkdir debug, переходим в нее cd debug и запускаем конфигурационный скрипт (напоминаем, что вы можете указать опции под свои предпочтения, за исключением опции --enable-debug):

../configure --enable-unicode --enable-debug --disable-shared --enable-monolithic

Конфигурация займет некоторое время (несколько минут) и в конце появится табличка с параметрами. Далее запускаем команду сборки make (сборка может занять очень много времени - 30 мин и дольше, не паникуйте) и установки make install (эта команда копирует все необходимые файлы и библиотеки в каталог с компилятором). Для проверки работоспособности запустим один из примеров. Переходим в соответствующий каталог cd ../samples/minimal, собираем пример make и запускаем minimal.exe. В примерах сборка идет через Makefile - файл с параметрами сборки.

Создадим теперь собственную программу (уже в вашей рабочей папке C:\msys\1.0\home). Создаем файл hello.cpp (объяснение работы этого примера будет в следующей статье):

#include "wx/wx.h"

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

class MyFrame: public wxFrame
{
	public:
	MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
};

IMPLEMENT_APP(MyApp)

bool MyApp::OnInit()
{
	MyFrame *frame = new MyFrame( _T("Привет, мир!"), wxPoint(25,25), wxSize(200,150) );
	frame->Show(TRUE);
	SetTopWindow(frame);
	return TRUE;
}

MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
	: wxFrame((wxFrame *)NULL, -1, title, pos, size)
{
}

Для сборки используем команду g++ hello.cpp `wx-config --debug --libs --cxxflags` -o hello.exe. Следует обратить внимание на кавычки - это мягкие кавычки (обратные, там, где клавиша 'ё') и не следует их путать с прямыми (где клавиша 'э'). В результате получим программу hello.exe. Так как библиотеки сконфигурированы на режим отладки, то и размер исполняемого файла получается огромным (>20Мб).

Для Release-сборки повторяем всю процедуру, только создаем папку release и конфигурируем командой

../configure --enable-unicode --disable-debug --disable-shared --enable-monolithic

Для сборки своей программы используем команду g++ hello.cpp `wx-config --libs --cxxflags` -o hello.exe

Ссылки

Автор статьи: Ильдар Насибуллаев