Cross-Platform Programming with wxWidgets
Just Make It Cross-Platform
Subscribe to Feed
  • Home
  • Projects
  • Links

Работаем с Cairo в wxWidgets – Часть I – Компиляция CAIRO 1.8.6 на Visual C++ 8

Uncategorized Add comments |

Первая статья из цикла, повествующего о том, ка киспользовать библиотеку cairo (и обертку wxCairo) с wxWidgets.

В этот раз речь пойдет о том, как собрать библиотеку cairo с помощью Visual C++ в Windows.

Для начала определимся, что нам нужно:

  • Mozilla Build 1.3
  • cairo 1.8.6
  • libpng 1.2.35
  • zlib 1.2.3
  • pixman 0.14.0


Устанавливаем Mozilla Build, распаковываем все библиотеки.

В переменных окружения прописываем пути к Visual Studio. Для того, чтобы все собралось успешно, необходимо, помимо Visual Studio установить Platform SDK.

DevEnvDir = C:\Program Files\Microsoft Visual Studio 8\Common7\IDE
FrameworkDir = C:\WINDOWS\Microsoft.NET\Framework
FrameworkSDKDir = C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0
FrameworkVersion = v2.0.50727
INCLUDE = C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include
LIB = C:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\LIB;C:\Program Files\Microsoft Visual Studio 8\VC\LIB;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\lib
LIBPATH = C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\LIB
PATH = C:\Program Files\Microsoft Visual Studio 8\Common7\IDE;C:\Program Files\Microsoft Visual Studio 8\VC\BIN;C:\Program Files\Microsoft Visual Studio 8\Common7\Tools;C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\bin;C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\bin;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;C:\Program Files\Microsoft Visual Studio 8\VC\VCPackages
SDKDIR = C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\
VCINSTALLDIR = C:\Program Files\Microsoft Visual Studio 8\VC
VSINSTALLDIR = C:\Program Files\Microsoft Visual Studio 8
VS80COMNTOOLS = C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\

Переменные окружения для сборки Cairo

Компилируем libpng и zlib

В папке, в которую мы установили Mozilla Build, запускаем скрипт start-msvc8.bat. В появившемся окне консоли переходим в папку, куда мы распаковали библиотеку pixman, и собираем ее командой

make -f Makefile.win32 CFG=release

После сборки переносим файлы библиотек и заголовочные файлы для zlib и libpng в папку с cairo.

  • zlib.h
  • zconf.in.h
  • zconf.h
  • pngconf.h
  • png.h
  • pixman.h
  • pixman-version.h
  • libpng.lib
  • zdll.lib

В папке Cairo правим файл cairo-features.h:

/* Generated by configure.  Do not edit. */
 #ifndef CAIRO_FEATURES_H
 #define CAIRO_FEATURES_H
 #define CAIRO_HAS_FT_FONT 0
 #define CAIRO_HAS_IMAGE_SURFACE 1
 #define CAIRO_HAS_PDF_SURFACE 1
 #define CAIRO_HAS_PNG_FUNCTIONS 1
 #define CAIRO_HAS_PS_SURFACE 1
 #define CAIRO_HAS_SVG_SURFACE 1
 #define CAIRO_HAS_USER_FONT 0
 #define CAIRO_HAS_XLIB_SURFACE 0
 #define CAIRO_HAS_XLIB_XRENDER_SURFACE 0
 /*#undef CAIRO_HAS_QUARTZ_FONT */
 /*#undef CAIRO_HAS_QUARTZ_SURFACE */
 #define CAIRO_HAS_WIN32_FONT 1
 #define CAIRO_HAS_WIN32_SURFACE 1
 #endif

В консоли MozillaBuild переходим в подкаталог src в папке с Cairo.
Собираем Cairo

Собираем cairo командой

make -f Makefile.win32 CFG=release

Если при сборке будет необходима библиотека pixman-1.lib, то копируем ее в эту же папку и повторно запускаем сборку.

После сборки cairo нам будут необходимы следующие файлы:

В результате нам для работы понадобятся только файлы:

  • cairo-deprecated.h
  • cairo-features.h
  • cairo-pdf.h
  • cairo-ps.h
  • cairo-static.lib
  • cairo-svg.h
  • cairo-version.h
  • cairo-win32.h
  • cairo.dll
  • cairo.h
  • cairo.lib
  • zlib1.dll

April 15th, 2009 |

Tags: wxWidgets, Статьи

Related Posts

  • wxWidgets and Visual Studio 2005 (Windows)
  • Организуем доступ к базам данных SQLite при разработке кросс-платформенных приложений на C++/wxWidgets – Часть III – Сборка проекта под Linux в Eclipse
  • Перевод книги Julian’а Smart’а – Глава I – Введение
  • Организуем доступ к базам данных SQLite при разработке кросс-платформенных приложений на C++/wxWidgets – Часть I – Шаблон проекта и GUI
  • Работа с базами данных в wxWidgets – DatabaseLayer – Минимальное приложение
Специальные предложения: дизельгенераторы . Дизель-генераторы Cummins.;Датчики SICK весь ассортимент: деревообрабатывающее оборудование . Продам Primultini Б/У.; подушки

6 Responses to “Работаем с Cairo в wxWidgets – Часть I – Компиляция CAIRO 1.8.6 на Visual C++ 8”

  1. Begemot
    April 16th, 2009 at 09:04:30

    А где же самое главное – зачем оно надо?


  2. ochelot
    April 16th, 2009 at 10:04:40

    http://cairographics.org/

    Cairo — программная библиотека, предназначенная для рендеринга векторной графики с независимым от оборудования API. Содержит примитивы для рисования двумерных изображений на различных платформах с использованием функций аппаратного ускорения там, где это возможно. Поддерживается вывод через X Window System, GDI, Syllable API, BeOS API, Mac OS X Quartz, OS/2,OpenGL-контексты (при помощи glitz), в локальный буфер изображения, PNG, PDF, PostScript, DirectFB и SVG.

    http://linfoline.homedns.org/tutorial_cairo/Cairo%20Tutorial.html


  3. bishop
    April 20th, 2009 at 17:04:46

    А почему не AGG?
    Еще есть wxArt2D.
    Сам с ними не работал, но функционал сравнивал между всеми тремя. Поэтому и возник вопрос предпочтения.


  4. T-Rex
    April 21st, 2009 at 00:04:29

    Я не очень уверен в том что AGG – хороший выбор. Там заявлена поддержка X11 и Win32, ни слова про Mac OS. Возможно конечно под Mac OS юзать X11 SDK но это ж надо потом X11 Runtime вроде у юзера ставить, это не есть гут. Хотя вобще думаю надо пробовать, я с AGG тоже не работал.

    wxArt2D, ну, когда-то пытался ее собрать и вроде не все гладко было. Програмить с ней я тоже не пробовал и не помню, собралось оно у меня или нет, но люди вроде хвалят, значит наверное оно тоже ничего так.

    А cairo, ну, на вкус и цвет фломастеры разные. Как “еще один” способ работать с вектором вроде тоже ничего так. хотя да, для создания контекста все равно приходится platform-specific код юзать, без этого никуда.


  5. ochelot
    April 21st, 2009 at 07:04:07

    Я смотрел AGG вещь хорошая, но на сколько я понял она не развивается и сверхсложная (возможно для меня). wxArt2D не смотрел на днях гляну :)


  6. Artem
    July 6th, 2009 at 12:07:00

    Да ochelot, с тобой полностью согласен AGG вещь хорошая, но сверхсложная…


Leave a Reply

Please leave these two fields as-is:

  • This blog is about…

    Articles Code::Blocks Components Controls Database DatabaseLayer Document/View Eclipse Localization NetBeans Networking News Printing Reports SQLite Tutorilas Video Visual Studio wxAUI wxButton wxDev-CPP wxGrid wxHelpController wxJavaScript wxJSON wxLocale wxLog wxPaintDC wxPropertyGrid wxRuby wxSQLite3 wxThread wxValidator wxWidgets wxWinCE wxZipInputStream wxZipOutputStream XML Библиотека Книги Статьи
  • Showcase

    Visit wxToolBox Homepage

    Buy wxToolBox (with source code)

  • Archives

    • November 2009
    • September 2009
    • August 2009
    • May 2009
    • April 2009
    • March 2009
    • February 2009
    • January 2009
    • December 2008
    • September 2008
    • August 2008
    • July 2008
    • June 2008
    • May 2008
    • April 2008
    • March 2008
    • February 2008
    • January 2008
    • December 2007
    • June 2007
    • May 2007
    • January 2007
  • Recent Comments

    • T-Rex on Getting Acquainted with Document/View Framework – Simple Image Viewer
    • T-Rex on Сделайте мне красиво – Часть II – wxAUI в Multi-View приложений
    • Mardiko on Getting Acquainted with Document/View Framework – Simple Image Viewer
    • marty on Сделайте мне красиво – Часть II – wxAUI в Multi-View приложений
    • T-Rex on Перевод книги Julian’а Smart’а – Глава VI – Обработка данных с устройств ввода
  • Buttons

    Locations of visitors to this page

    Rambler's Top100
    Рейтинг@Mail.ru

Copyright © 2010 Cross-Platform Programming with wxWidgets All Rights Reserved
RSS Log in