MinGW32 build guide
From LeechCraft
Contents
Программы для компиляции
Всё нижеперечисленное устанавливалось на Win7 x64 Ultimate:
- http://sourceforge.net/projects/qtx64/files/qt-x86/4.8.6/mingw/sjlj/qt-4.8.6-x86-mingw482r3-sjlj-rev1.exe/download - Qt и mingw32 с sjlj в одном флаконе
- http://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/msys%2B7za%2Bwget%2Bsvn%2Bgit%2Bmercurial%2Bcvs-rev13.7z/download - MSys
- http://www.cmake.org/files/v2.8/cmake-2.8.12.2-win32-x86.exe - CMake
- http://downloads.activestate.com/ActivePerl/releases/5.16.3.1604/ActivePerl-5.16.3.1604-MSWin32-x64-298023.msi - Perl для запуска Configure OpenSSL
- http://www.nasm.us/pub/nasm/releasebuilds/2.11.05/win32/nasm-2.11.05-installer.exe - для компиляции OpenSSL 1.0.1h
- http://download.tuxfamily.org/notepadplus/6.6.4/npp.6.6.4.Installer.exe - для различных правок
Зависимости
Мы не можем скачать все эти библиотеки в готовых бинарниках для Windows, потому что нет никаких гарантий того, что они собраны с тем компилятором, который мы используем.
Создадим папку для хранения исходников, например E:\Libs. В этом примере подразумевается, что Qt и mingw установлен в папку E:\Qt.
TODO
- закончить boost
- закончить poppler
- libbz2
- libgeoip
- libgstreamer-plugins-base0.10
- libgstreamer-plugins-base1.0
- libgstreamer0.10
- libgstreamer1.0
- libguess
- liblastfm
- libmagic
- libmtp
- libqca2
- libqxt
- libtelepathy-qt4
- libtorrent-rasterbar
Boost
- скачать исходники (http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.gz/download)
b2 -j4 variant=release toolset=gcc link=shared runtime-link=shared threading=multi --without-coroutine --without-context --without-mpi --without-python --prefix="E:\\Libs\\boost-1.55" install
OpenSSL
- скачать исходники (https://www.openssl.org/source/openssl-1.0.1h.tar.gz)
- запустить msys.bat
- tar xvzf openssl-1.0.1h.tar.gz && cd openssl-1.0.1h
- ./Configure --prefix=/e/Qt/mingw32 no-idea no-mdc2 no-rc5 shared mingw (с no-asm, который предлагается на stackoverflow, не получилось собрать)
- make depend && make && make install
libmsn
- скачать исходники (http://sourceforge.net/projects/libmsn/files/latest/download)
- скопировать файл applink.c из исходников OpenSSL в E:\Qt\mingw32\include\openssl\
- запустить командную строку Windows и перейти в каталог с исходниками
- cmake -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=E:\Qt\mingw32
- mingw32-make && mingw32-make install
hunspell
- скачать исходники (http://sourceforge.net/projects/hunspell/files/Hunspell/1.3.2/hunspell-1.3.2.tar.gz/download)
- запустить msys.bat
- отредактировать winnt.h: ищем строку #define SUBLANG_SINDHI_PAKISTAN 0x02, меняем значение на 0x03
- tar xvzf hunspell-1.3.2.tar.gz && cd hunspell-1.3.2
- ./configure --prefix=/e/Qt/mingw32 --disable-static
- make && make install
taglib
- скачать исходники (http://taglib.github.io/releases/taglib-1.9.1.tar.gz)
- запустить командную строку Windows и перейти в каталог с исходниками
- cmake -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=E:\Qt\mingw32
- mingw32-make && mingw32-make install
QJSON
- скачать исходники (https://github.com/flavio/qjson/archive/0.8.1.tar.gz)
- запустить командную строку Windows и перейти в каталог с исходниками
- cmake -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=E:\Qt\mingw32
- mingw32-make && mingw32-make install
Speex
- скачать исходники (http://downloads.xiph.org/releases/speex/speex-1.2rc1.tar.gz)
- запустить msys.bat
- tar xvzf speex-1.2rc1.tar.gz && cd speex-1.2rc1
- ./Configure --prefix=/e/Qt/mingw32 --disable-static
- make && make install
QXMPP
- скачать исходники (https://codeload.github.com/qxmpp-project/qxmpp/tar.gz/v0.8.0)
- скопировать папку с заголовочными файлами sleex в E:\Libs\qxmpp-0.8.0\src\base
- запустить командную строку Windows и перейти в каталог с исходниками
- qmake PREFIX=E:\\Qt\\mingw32 QXMPP_USE_SPEEX=1
- mingw32-make
- Чтобы установить только release версию библиотеки, надо ввести: сd src && mingw32-make release-install
kQOAuth
- скачать исходники (https://codeload.github.com/kypeli/kQOAuth/tar.gz/0.98)
- запустить командную строку Windows и перейти в каталог с исходниками
- qmake PREFIX=E:\\Qt\\mingw32 CONFIG+=release
- mingw32-make && mingw32-make install
QScintilla
- скачать исходники (http://sourceforge.net/projects/pyqt/files/QScintilla2/QScintilla-2.8.2/QScintilla-gpl-2.8.2.zip/download)
- запустить командную строку Windows и перейти в каталог с исходниками
- cd Qt4Qt5
- qmake PREFIX=E:\\Qt\\mingw32 qscintilla.pro
- mingw32-make && mingw32-make install
poppler
Зависимости poppler:
- poppler-data
- freetype
poppler-data
- скачать исходники (http://poppler.freedesktop.org/poppler-data-0.4.6.tar.gz)
- запустить командную строку Windows и перейти в каталог с исходниками
- cmake -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=E:\Qt\mingw32
- mingw32-make && mingw32-make install
Компилируем poppler:
- скачать исходники (http://poppler.freedesktop.org/poppler-0.26.1.tar.xz)
- запустить командную строку Windows и перейти в каталог с исходниками
- cmake -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=E:\Qt\mingw32
- mingw32-make && mingw32-make install
qwt
- скачать исходники (http://sourceforge.net/projects/qwt/files/qwt/6.1.0/qwt-6.1.0.zip/download)
- в файле qwtbuild.pri заменить CONFIG += debug_and_release на CONFIG += release и удалить CONFIG += build_all
- в файле заменить QWT_INSTALL_PREFIX = C:/Qwt-$$QWT_VERSION на QWT_INSTALL_PREFIX = E:/Qt
- запустить командную строку Windows и перейти в каталог с исходниками
- qmake && mingw32-make && mingw32-make install
libotr
Зависимости:
- libgcrypt
- libgpg-error
Собирать в указанном ниже порядке.
libgpg-error
- скачать исходники (ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.12.tar.gz) 1.13 не собирается!
- пересохранить po/ro.po и po/pl.po в UTF8 без BOM
- Заменить соответствующий заголовок в po/ro.po и po/pl.po на "Content-Type: text/plain; charset=UTF-8\n"
- запустить msys.bat
- tar xvzf libgpg-error-1.12.tar.gz && cd libgpg-error-1.12
- ./configure --prefix=/e/Qt/mingw32 --disable-static
- make && make install
libgcrypt
- скачать исходники (ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.6.1.tar.gz)
- запустить msys.bat
- tar xvzf libgcrypt-1.6.1.tar.gz && cd libgcrypt-1.6.1
- скопировать libgpg-error.dll.a и libgpg-error.la в папку libgcrypt-1.6.1/src
- ./configure --prefix=/e/Qt/mingw32 --disable-static
- make && make install
libotr
- скачать исходники (https://otr.cypherpunks.ca/libotr-4.0.0.tar.gz)
- запустить msys.bat
- tar xvzf libotr-4.0.0.tar.gz && cd libotr-4.0.0
- ./configure --prefix=/e/Qt/mingw32 --disable-static
- make && make install
libdjvulibre
- скачать исходники (http://sourceforge.net/projects/djvu/files/DjVuLibre/3.5.25/djvulibre-3.5.25.3.tar.gz/download)
- запустить msys.bat
- tar xvzf djvulibre-3.5.25.3.tar.gz && cd djvulibre-3.5.25
- ./configure --prefix=/e/Qt/mingw32 --disable-static --enable-desktopfiles=no (последний флаг не работает, но пусть будет, может, заработает в следующей версии)
- make (закончится сообщением об ошибке, что нельзя запустить incscape, игнорируем его)
- make install
libtidy
- скачать исходники (http://tidy.cvs.sourceforge.net/viewvc/tidy/?view=tar)
- распаковать только папку tidy
- запустить msys.bat, перейти в папку с libtidy
- добавить #define _MSC_VER 1301 в верхней части файла src/mappedio.c
- /bin/sh build/gnuauto/setup.sh для создания ./configure
- ./configure --prefix=/e/Qt/mingw32 --disable-static
- make && make install
libpcre
- скачать исходники (ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.35.zip)
- запустить командную строку Windows и перейти в каталог с исходниками
- cmake -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=E:\Qt\mingw32
- mingw32-make && mingw32-make install