Сборка QtiPlot под Windows
Это, конечно, оффтопик, но собирать qtiplot под windows проходится долго и мучительно, а это иногда бывает нужно во враждебном windows-окружении. “С нахрапу” qtiplot не собирается, и приличных гайдов я не видел. То, что предсталено ниже есть продукт личных проб и ошибок.
Введение
Итак, для сборки, помимо, собственно, исходников qtiplot, и MinGW потребуются:
- Qt версии 4.4.0 или выше (на мой взгляд, либо 4.4.3, либо 4.5.1, работает и так и эдак)
- Qwt версии 5.2.0 (я предпочитаю сборку той же версии из SVN)
- GSL (проще всего под Win найти версию 1.8, и она вполне подойдет для наших прозаических нужд)
- muParser версии 1.28
- zlib
- опционально libpng
- BOOST C++ Libraries версии 1.36.0 (хотя 1.37.0 тоже работает, как показал эксперимент)
- Опционально Python 2.5, SIP, PyQt
MinGW можно (и, даже, пожалуй, стоит) поставить при помощи инсталлятора Qt. Это и удобнее и поставится нужная версия. Хотя если MinGW уже есть, то лцчше использовать его. Скачать библиотеки Qt можно здесь: http://www.qtsoftware.com/downloads. Рекомендую ограничиться библиотеками.
Перед сборкой следует убедиться, что пути с qmake и mingw32-make находиться в PATH (по умолчанию qmake ставится в C:\Qt\\bin, mingw32-make в C:\MinGW\bin)
Переходим к сборке компонент.
MuParser
Сразу оговорюсь, все исходники у меня лежат в C:\build\. Соответственно все команды даются с учетом этого факта. Подставьте свой путь при необходимости. Скачать muparser можно здесь: http://sourceforge.net/project/showfiles.php?group_id=137191&package_id=150725 Полученный архив надо распаковать (я распаковал в C:\build) Дальше нужно открыть командную строку (Пуск-Выполнить-cmd), и там:
cd C:\build\muparser\build
mingw32-make -f makefile.mingw
Qwt
Взять исходники Qwt 5.2.0 можно здесь: http://sourceforge.net/project/showfiles.php?group_id=13693&package_id=11488 Однако, они поставляются для сборки динамичкеской библиотеки, а qtiplot требует статической линковки. Поэтому, распаковав qwt в C:\build, открываем C:\build\qwt-5.2.0\qwtconfig.pri И исправляем:
# Qt 4
win32 {
# On Windows you can't mix release and debug libraries.
# The designer is built in release mode. If you like to use it
# you need a release version. For your own application development you
# might need a debug version.
# Enable debug_and_release + build_all if you want to build both.
CONFIG += release # release/debug/debug_and_release
#CONFIG += release_and_release
#CONFIG += build_all
}
на
# Qt 4
win32 {
# On Windows you can't mix release and debug libraries.
# The designer is built in release mode. If you like to use it
# you need a release version. For your own application development you
# might need a debug version.
# Enable debug_and_release + build_all if you want to build both.
CONFIG += debug # release/debug/debug_and_release
#CONFIG += release_and_release
#CONFIG += build_all
}
и
CONFIG += QwtDll
на
CONFIG -= QwtDll
После этого можно собирать:
cd С:\build\qwt-5.2.0
qmake -recursive && mingw32-make
zlib
zlib можно просто скачать, но я предпочитаю собрать. Исходники берутся с http://zlib.net/ Дальше все довольно тривиально:
cd E:\build\zlib-1.2.3
mingw32-make -f win32\Makefile.gcc
BOOST C++
Берется отсюда: http://www.boost.org/users/history/ Желательно взять версию 1.36.0. Распаковываем, опять же, в C:\build. Помимо, собственно, boost, следует так же скачать BOOST JAM отсюда: http://www.boost.org/users/history/ После этого можно перейти к сборке. Нам на самом деле нужно собрать всего две библиотеки:
cd E:\build\boost_1_36_0
bjam --build-dir=..\boost-build --toolset=gcc --build-type=minimal --link=static --variant=release --runtime-link=static --with-date_time --with-thread stage
GSL
Проще всего – скачать: http://gnuwin32.sourceforge.net/packages/gsl.htm Нас интересует только “Developer files” (gsl-1.8-lib.zip)
QtiPlot
Я не стану останавливаться на сборке libpng, а так же установке Python, SIP, PyQt, это опционально, тривиально, и в сети полно описаний. Поэтому переходим сразу к qtiplot. Для начала, я не стал собирать мануалы (для них нужен еще целый ворох программ, я решил что они ни к чему) Поэтому из файла C:\build\qtiplot\qtiplot.pro сразу убирается строка
manual
Далее, если мы не хотим Python, то в файле С:\build\qtiplot\qtiplot\qtiplot.pro нужно заккоментировать строку
SCRIPTING_LANGS += Python
(нужно добавить в начало строки решетку, да)
Если мы решаем, что нам лень собирать libpng, то следует так же закомментировать строку
CONFIG += HAVE_LIBPNG
или засунуть libpng.a и заголовки в C:\build\qtiplot\3rdparty\3rdparty\libpng
Теперь нужно раскидать собранные ранее библиотеки по папкам в C:\build\qtiplot\3rdparty: C:\build\muparser\lib, C:\build\muparser\include в папку C:\build\qtiplot\3rdparty\muparser C:\build\qwt-5.2\lib C:\build\qwt-5.2\src в папку C:\build\qtiplot\3rdparty\qwt gsl-1.8-lib.zip нужно распаковать в C:\build\qtiplot\3rdparty\gsl C:\build\zlib-1.2.3\libz.a в папку C:\build\qtiplot\3rdparty\zlib
C:\build\boost_1_36_0 нужно переименовать в C:\build\qtiplot\3rdparty\boost_1_36_0 C:\build\boost-build\boost\bin.v2\libs\date_time\build\gcc-mingw-3.4.5\release\link-static\threading-multi\libboost_date_time-mgw34-mt-1_36.lib переименовать в C:\build\qtiplot\3rdparty\boost_1_36_0\lib\libboost_date_time-mgw34-mt.lib C:\build\boost-build\boost\bin.v2\libs\thread\build\gcc-mingw-3.4.5\release\link-static\threading-multi\libboost_thread-mgw34-mt-1_36.lib в C:\build\qtiplot\3rdparty\boost_1_36_0\lib\libboost_thread-mgw34-mt.lib
Наконец, можно приступить к сборке.
cd C:\build\qtiplot
qmake qtiplot.pro && mingw32-make
Попытки скрипта сборки открыть python-скрипты в отсутствие python можно игнорировать (нажатием на кнопочку cancel)
Полученный файл лежит в C:\build\qtiplot\qtiplot\qtiplot.exe Замечания, исправления, предложения приветствуются.