Название: eXaro Сборка и запуск тестового примера Отправлено: vovan1982 от Июль 09, 2012, 14:21 Привет всем.
В моей программе дело дошло до создания отчётов, свой выбор я остановил на eXaro, не смотря на то что проект мёртв с 2009 года его функционала мне вполне достаточно, всяко лучше чем рисовать каждый отчёт в исходном коде. После недели ковыряний в интернете, сбора информации по крупицам, ковыряния исходников eXaro, чтения постов http://www.prog.org.ru/topic_11534_0.html и http://www.prog.org.ru/topic_10574_30.html и в конечном итоге опухшего мозга мне удалось победить этот сабж :). Ну и собственно решил поделиться своими результатами, вдруг кому ещё пригодится, ну и конечно же чтоб самому не забыть тоже :) Итак входные данные: ОС: Win7 Qt: Qt SDK version 1.2.1 Версия используемой библиотеки Qt: 4.8.1 Компилятор: MinGw Сборка eXaro Качаем и ставим cmake http://www.cmake.org/cmake/resources/software.html (http://www.cmake.org/cmake/resources/software.html) Качаем и ставим mercurial http://mercurial.selenic.com/downloads/ (http://mercurial.selenic.com/downloads/) Качаем exaro Для этого создаём папку с исходниками exaro у меня это D:\exaro-src Открываем cmd заходим в папку и выполняем команду: Код: hg clone https://code.google.com/p/exaro/ Качаем propertyeditor 2.1.3 https://code.google.com/p/propertyeditor/downloads/list (https://code.google.com/p/propertyeditor/downloads/list) Качаем libpng15 http://sourceforge.net/projects/libpng/files/libpng15/1.5.11/ (http://sourceforge.net/projects/libpng/files/libpng15/1.5.11/) Качаем Zint-for-exaro и Quazip http://code.google.com/p/exaro/downloads/list (http://code.google.com/p/exaro/downloads/list) Качаем установку и исходники Zlib for windows v1.2.3 http://gnuwin32.sourceforge.net/packages/zlib.htm (http://gnuwin32.sourceforge.net/packages/zlib.htm) Устанавливаем Zlib в папку D:\exaro-src\zlib Распаковываем все дополнения в папку D:\exaro-src После распаковки я переместил содержимое дополнений так чтоб получилась следующая структура папок: Код: D:\exaro-src Распаковываем исходники Zlib и копируем файл zconf.h в папку D:\exaro-src\quazip Создадим все необходимые папки для сборки Код: D:\exaro-src\bin Собираем QuaZip Код: Source dir = D:\exaro-src\quazip Запускаем командную оболочку cmd с установленным окружением QT 4.8.1 MinGW Переходим в папку D:\exaro-src\quazip\bin и запускаем mingw32-make.exe. Собранная библиотека будет находится в D:\exaro-src\bins\quazip. Собираем lpng Код: Source dir = D:\exaro-src\lpng Запускаем командную оболочку cmd с установленным окружением QT 4.8.1 MinGW Переходим в папку D:\exaro-src\lpng\bin и запускаем mingw32-make.exe. При компилящии получаем ошибку, для её устранения копируем файлы D:\exaro-src\bins\lpng\libpng15.a D:\exaro-src\bins\lpng\libpng15.dll D:\exaro-src\bins\lpng\libpng15.dll.a В папку «D:\exaro-src\lpng\bin» И ещё раз запускаем mingw32-make.exe. Собранная библиотека будет находится в D:\exaro-src\bins\lpng. Собираем PropertyEditor Код: Source dir = D:\exaro-src\ propertyeditor Запускаем командную оболочку cmd с установленным окружением QT 4.8.1 MinGW Переходим в папку D:\exaro-src\propertyeditor\bin и запускаем mingw32-make.exe. Собранная библиотека будет находится в D:\exaro-src\bins\propertyeditor. Собираем Zint Код: Копируем файл D:\exaro-src\lpng\bin\pnglibconf.h в D:\exaro-src\lpng Запускаем командную оболочку cmd с установленным окружением QT 4.8.1 MinGW Переходим в папку D:\exaro-src\zint\bin и запускаем mingw32-make.exe. Собранная библиотека будет находится в D:\exaro-src\bins\zint. Собираем Exaro Код: Копируем все *.h файлы из папки D:\exaro-src\quazip\quazip в папку D:\exaro-src\quazip. Запускаем командную оболочку cmd с установленным окружением QT 4.8.1 MinGW Переходим в папку D:\exaro-src\bin и запускаем mingw32-make.exe. В процессе компиляции получаем ошибку в файле D:\exaro-src\libs\report \reportinterface.cpp. Открываем этот файл и переходим на 528 строку и удаляем лишнюю кавычку перед «+"/XXXXXXXXXXXXX.bdrtpf");». Заново запускаем mingw32-make.exe. Получаем ещё одну ошибку в фале D:\exaro-src\plugins\report\items\barcode\barcode.cpp. Открываем этот файл и комментируем строку 403 и строки с 464 по 470. Заново запускаем mingw32-make.exe. Собранная eXaro Находится в D:\exaro-src\bins\exaro. Теперь создадим папку с готовым для использования eXaro. Создаём папку D:\eXaro в ней создаём дополнительные подпапки Код: D:\eXaro\exaro И заполняем эти папки файлами из папки D:\exaro-src\bins следующим образом В корень папки D:\eXaro кладём exaro.exe, libPropertyEditor.dll, libquazip.dll, libQZint.dll, libReport.dll, libzint.dll, а также все необходимые файлы от qt и mingw libgcc_s_dw2-1.dll, mingwm10.dll, QtCore4.dll, QtDesignerComponents4.dll, QtGui4.dll, QtOpenGL4.dll, QtScript4.dll, QtSql4.dll, QtWebKit4.dll, QtXml4.dll. В папку D:\eXaro\exaro\toolbars кладём libFonttoolbar.dll из папки D:\exaro-src\bins\exaro В папку D:\eXaro\include кладём все *.h файлы из D:\exaro-src\exaro\libs\report В папку D:\eXaro\propertyEditor кладём все *.dll файлы из папки D:\exaro-src\bins\ propertyeditor В папку D:\eXaro\report кладём все *.dll файлы из папки D:\exaro-src\bins\exaro кроме файлов libReport.dll и libFonttoolbar.dll В папку D:\eXaro\report\export кладём libCsvTxt.dll, libHtml.dll, libOds.dll из папки D:\exaro-src\bins\exaro В папку D:\eXaro\sqldrivers кладём драйвера баз данных содранных при помощи этого же mingw В папку D:\eXaro\translations нужно класть переводы но где они находятся в исходникакх я не знаю и искать не стал а просто выдернул их из инсталяшки exaro http://sourceforge.net/projects/exaro/ Я ещё скопировал libmysql.dll в корень D:\eXaro, чтоб работал с MySql. Ну и на последок копируем в корень D:\eXaro иконку от дизайнера из папки D:\exaro-src\apps\designer Всё eXaro собран и готов к работе :). Запуск тестового примера. Для тестового примера нам необходимо скачать тестовую базу и тестовый отчёт с сайта eXaro http://exaro.sourceforge.net/examples/music.db (http://exaro.sourceforge.net/examples/music.db) http://exaro.sourceforge.net/examples/musicReport.bdrt (http://exaro.sourceforge.net/examples/musicReport.bdrt) Далее создаём папку для нашего тестового примера, у меня это будет D:\QtProjects\testexaro, копируем туда содержимое папки D:\eXaro\include, libReport.dll и создаём два файла testexaro.pro и main.cpp. Содержимое создаваемых файлов представлено ниже testexaro.pro Код: QT += core gui sql xml script main.cpp Код: #include <QApplication> Длалее создаём папку для release сборки нашего тестового проекта, у меня это D:\QtProjects\testexaro-build-release и копируем туда из папки D:\eXaro следующие файлы: libPropertyEditor.dll, libquazip.dll, libQZint.dll, libReport.dll, libzint.dll, а так же целиком папку D:\eXaro\report и скачанные тестовую базу music.db и отчёт musicReport.bdrt. Запускаем Qt Creator и открываем наш тестовый проект testexaro.pro, идём в настройки проекта и меняем конфигурацию сборки на релиз mingw, в качестве каталога сборки указываем D:\QtProjects\testexaro-build-release. Компилируем запускаем наслаждаемся :). Если необходимо выполнить debug сборку примера то необходимо заново собрать eXaro но в качестве параметра CMAKE_BUILD_TYPE в cmake указать Debug и в папку с debug сборкой к примеру D:\QtProjects\testexaro-build-debug положить все необходимые файлы указанные выше но уже от debug сборки eXaro. |