- PVSM.RU - https://www.pvsm.ru -
Многим хабражителям известен замечательный открытый и бесплатный многопротокольный (ICQ, Jabber, Mail.Ru, IRC, VKontakte) клиент обмена мгновенными сообщениями qutIM. Если сборка этого клиента из исходников под Linux не вызывает особых вопросов, то сборка под Windows окутана завесой тайны. На оффициальном сайте [1] по этому поводу написано очень мало и поэтому я решил рассказать, как это сделать.
Кому интересно, прошу под кат.
На момент написания статьи Qt libraries 4.8.1 for Windows (minGW 4.4, 319 MB).
Устанавливаем в C:Qt
get.qt.nokia.com/qt/source/qt-win-opensource-4.8.1-mingw.exe [3]
На момент написания статьи Qt Creator 2.4.1 for Windows (53 MB).
Устанавливаем в C:Qt
get.qt.nokia.com/qtcreator/qt-creator-win-opensource-2.4.1.exe [4]
get.qt.nokia.com/misc/MinGW-gcc440_1.zip [5]
Распакуем архив с MinGW в каталог C:Qtqtcreator-2.4.1
На момент написания статьи cmake-2.8.7-win32-x86.exe.
Устанавливаем в C:Qt
www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe [7]
На момент написания статьи Git-1.7.10-preview20120409.exe
msysgit.googlecode.com/files/Git-1.7.10-preview20120409.exe [9]
В процессе установки выбираем опцию: Use Git Bash only
Так же, т.к. у меня установлен TortoiseSVN, я выбрал опцию: Use (Tortoise) Plink
Для этого открываем C:Qt4.8.1binqtvars.bat и после строки
set PATH=%PATH%;%SystemRoot%System32
добавляем свои:
set PATH=%PATH%;C:QtCMake-2.8bin
set PATH=%PATH%;C:Qtqtcreator-2.4.1mingwbin
set PATH=%PATH%;C:Qtqca-2.0.3lib
Открываем “Qt 4.8.1 Command Prompt” из меню Пуск -> Программы -> Qt by Nokia v4.8.1 (MinGW OpenSource)
Исходники берутся с zlib.net [10]
zlib.net/zlib-1.2.6.tar.gz [11]
Распаковываем в C:Qt
Дальше все довольно тривиально, в “Qt 4.8.1 Command Prompt” выполняем:
cd C:Qtzlib-1.2.6
mingw32-make -f win32Makefile.gcc
Готовый OpenSSL под Windows берем тут
www.slproweb.com/products/Win32OpenSSL.html [12]
Скачиваем Win32OpenSSL-1_0_1.exe [13] и устанавливаем в C:OpenSSL-Win32
В процессе установки выбираем пункт: The OpenSSL binaries (/bin) directory
Далее в “Qt 4.8.1 Command Prompt” выполняем:
mkdir c:local
mkdir c:localbin
mkdir c:localinclude
mkdir c:locallib
xcopy /I C:OpenSSL-Win32includeopenssl c:localincludeopenssl
copy /Y C:OpenSSL-Win32libMinGW*.* C:locallib
copy /Y C:OpenSSL-Win32liblibeay32.lib C:locallib
copy /Y C:OpenSSL-Win32libssleay32.lib C:locallib
Далее в каталоге C:Qt4.8.1mkspecsfeatures создаем файл winlocal.prf следующего содержания:
WINLOCAL_PREFIX = C:/local
Ищем в Интернете готовую собранную версию cyrus-sasl под Windows, я нашел на странице IM-клиента Pidgin. (http://developer.pidgin.im/wiki/BuildingWinPidgin)
developer.pidgin.im/static/win32/cyrus-sasl-2.1.22-daa1.zip [14]
Распаковываем в C:Qt
Далее в “Qt 4.8.1 Command Prompt” выполняем:
xcopy /I /E /Y C:Qtcyrus-sasl-2.1.22-daa1bin c:localbin
xcopy /I /E /Y C:Qtcyrus-sasl-2.1.22-daa1include c:localinclude
xcopy /I /E /Y C:Qtcyrus-sasl-2.1.22-daa1lib c:locallib
Исходники берем тут:
delta.affinix.com/download/qca/2.0/qca-2.0.3.tar.bz2 [15]
delta.affinix.com/download/qca/2.0/plugins/qca-ossl-2.0.0-beta3.tar.bz2 [16]
delta.affinix.com/download/qca/2.0/plugins/qca-cyrus-sasl-2.0.0-beta3.tar.bz2 [17]
Распаковываем в C:Qt
Собираем в “Qt 4.8.1 Command Prompt”
Собираем qca-2.0.3:
cd C:Qtqca-2.0.3
configure
make
installwin
Собираем qca-ossl-2.0.0-beta3:
cd C:Qtqca-ossl-2.0.0-beta3
configwin rd
qmake
make
mkdir %QTDIR%pluginscrypto
copy /Y lib*.dll %QTDIR%pluginscrypto
Собираем qca-cyrus-sasl-2.0.0-beta3:
cd C:Qtqca-cyrus-sasl-2.0.0-beta3
configwin rd
qmake
make
copy /Y lib*.dll %QTDIR%pluginscrypto
Если при сборке qca-ossl-2.0.0-beta3 или qca-cyrus-sasl-2.0.0-beta3 возникнет ошибка на невозможность найти libsasl или libqcad или libeay32 и т.п., то необходимо в файлах Makefile.Release и Makefile.Debug изменить названия библиотек в параметре LIBS.
К примеру, для qca-ossl-2.0.0-beta3 в файле Makefile.Release у меня написано:
LIBS = -L«c:Qt4.8.1lib» releaseqca-ossl_resource_res.o -LC:/local/lib -llibeay32 -lssleay32 -lgdi32 -lwsock32 -LC:/Qt/qca-2.0.3/lib -lqca2 -lQtCore4
К примеру, для qca-ossl-2.0.0-beta3 в файле Makefile.Debug у меня написано:
LIBS = -L«c:Qt4.8.1lib» debugqca-ossld_resource_res.o -LC:/local/lib -llibeay32 -lssleay32 -lgdi32 -lwsock32 -LC:/Qt/qca-2.0.3/lib -lqca2 -lQtCored4
К примеру, для qca-cyrus-sasl-2.0.0-beta3 в файле Makefile.Release у меня написано:
LIBS = -L«c:Qt4.8.1lib» releaseqca-cyrus-sasl_resource_res.o -LC:/local/lib -llibsasl -LC:/Qt/qca-2.0.3/lib -lqca2 -lQtCore4
Запускаем Пуск -> Программы -> Git -> Git Bash
Выполняем:
mkdir c:qutim-windows
cd c:qutim-windows
git clone git://github.com/euroelessar/qutim.git
cd qutim
git submodule update --init --recursive
При ошибках на стадии git submodule update –init –recursive запустить команду еще раз.
Далее закрываем “Git Bash” и в “Qt 4.8.1 Command Prompt” выполняем:
cd c:qutim-windows
mkdir qutim-build
mkdir qutim-install
cd qutim-build
cmake ../qutim -DZLIB_INCLUDE_DIR=C:/Qt/zlib-1.2.6 -DZLIB_LIBRARIES=C:/Qt/zlib-1.2.6/libz.a -DZLIB_LIBRARY=C:/Qt/zlib-1.2.6/libz.a -DQCA2_LIBRARIES=C:/Qt/qca-2.0.3/lib/libqca2.a -DQCA2_INCLUDE_DIR=C:/Qt/qca-2.0.3/include/QtCrypto -DCMAKE_INSTALL_PREFIX=C:/qutim-windows/qutim-install -DQUTIM_SINGLE_PROFILE=1 -DQUTIM_GUI_TYPE=WIN32 -DCMAKE_BUILD_TYPE=Release -G"MinGW Makefiles"
Если по окончании будет написано
-- Configuring done
-- Generating done
-- Build files have been written to: C:/qutim-windows/qutim-build
, то значит cmake отработал нормально.
Внимательно смотрим на вывод cmake'а и отключаем не нужные плагины при помощи -DPLUGIN_NAME=0
Далее запускаем сборку:
make
Начнется процесс сборки, пример:
C:qutim-windowsqutim-build>make
[ 0%] Generating modulemanager.moc
[ 0%] Generating moc_abstractcontact.cxx
...
[ 64%] Building CXX object protocols/jabber/CMakeFiles/jabber.dir/src/protocol/a
ccount/jaccount.cpp.obj
...
После успешной сборки подготавливаем рабочий дистрибутив, для этого выполняем:
make install
После этого в каталоге C:qutim-windowsqutim-install нас ждет готовый qutIM 0.3
The end.
Инструкцию составил Михаил Григорьев (sleuthhound@gmail.com, icq: 161867489, www.im-history.ru [18])
P.S. На самом деле в qutim-install нас ждет не совсем до конца готовый qutIM 0.3, там будет отсутствовать масса необходимых библиотек, например: libgcc_s_dw2-1.dll, mingwm10.dll, QtCore4.dll, QtGui4.dll, QtNetwork4.dll, QtScript4.dll и т.д. Вдобавок к этому если сравнивать qutIM 0.3 из офф. инсталлятора [19], то его состав сильно отличается от собранного нами. Выводы делайте сами.
Автор: CHERTS
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/open-source/5150
Ссылки в тексте:
[1] оффициальном сайте: http://wiki.qutim.org/ru/building_from_git
[2] qt.nokia.com/downloads: http://qt.nokia.com/downloads
[3] get.qt.nokia.com/qt/source/qt-win-opensource-4.8.1-mingw.exe: http://get.qt.nokia.com/qt/source/qt-win-opensource-4.8.1-mingw.exe
[4] get.qt.nokia.com/qtcreator/qt-creator-win-opensource-2.4.1.exe: http://get.qt.nokia.com/qtcreator/qt-creator-win-opensource-2.4.1.exe
[5] get.qt.nokia.com/misc/MinGW-gcc440_1.zip: http://get.qt.nokia.com/misc/MinGW-gcc440_1.zip
[6] www.cmake.org/files/v2.8/: http://www.cmake.org/files/v2.8/
[7] www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe: http://www.cmake.org/files/v2.8/cmake-2.8.7-win32-x86.exe
[8] msysgit.github.com: http://msysgit.github.com
[9] msysgit.googlecode.com/files/Git-1.7.10-preview20120409.exe: http://msysgit.googlecode.com/files/Git-1.7.10-preview20120409.exe
[10] zlib.net: http://zlib.net
[11] zlib.net/zlib-1.2.6.tar.gz: http://zlib.net/zlib-1.2.6.tar.gz
[12] www.slproweb.com/products/Win32OpenSSL.html: http://www.slproweb.com/products/Win32OpenSSL.html
[13] Win32OpenSSL-1_0_1.exe: http://www.slproweb.com/download/Win32OpenSSL-1_0_1.exe
[14] developer.pidgin.im/static/win32/cyrus-sasl-2.1.22-daa1.zip: http://developer.pidgin.im/static/win32/cyrus-sasl-2.1.22-daa1.zip
[15] delta.affinix.com/download/qca/2.0/qca-2.0.3.tar.bz2: http://delta.affinix.com/download/qca/2.0/qca-2.0.3.tar.bz2
[16] delta.affinix.com/download/qca/2.0/plugins/qca-ossl-2.0.0-beta3.tar.bz2: http://delta.affinix.com/download/qca/2.0/plugins/qca-ossl-2.0.0-beta3.tar.bz2
[17] delta.affinix.com/download/qca/2.0/plugins/qca-cyrus-sasl-2.0.0-beta3.tar.bz2: http://delta.affinix.com/download/qca/2.0/plugins/qca-cyrus-sasl-2.0.0-beta3.tar.bz2
[18] www.im-history.ru: http://www.im-history.ru
[19] офф. инсталлятора: http://qutim.org/
Нажмите здесь для печати.