Какой самый быстрый и простой способ получить libpng для разработки в VisualStudio2008? - PullRequest
3 голосов
/ 29 декабря 2011

У меня есть некоторый код C ++, который использует библиотеку изображений GIL Boost и хочет записывать файлы, используя boost::gil::png_write_view из boost/gil/extension/io/png_io.hpp. Этот заголовок сам по себе включает png.h и, конечно, приводит к зависимости от ссылки.

В Debian он хорошо компилируется и связывается. Если бы он пожаловался на что-то упущенное, необходимые заголовки и библиотеки были бы через несколько секунд через aptitude install libpng-dev.

В Windows (VisualStudio 2008 на XP64) мне приходится сталкиваться с мыслью, что мне придется собирать libpng из исходного кода (а также его зависимость от zlib). Если там уже есть очевидная упаковка, я ее не вижу. Может ли кто-нибудь просветить меня, если где-нибудь есть такой полезный ресурс?

1 Ответ

4 голосов
/ 29 декабря 2011

Кажется, что собственная упаковка Libpng предоставляет файлы проекта для vc6 и VC7.1 (VS2003). Более поздние выпуски также поставляются с файлами проекта VC10. Но ничего для VC8 (VS2005) или VC9 (VS2008). Однако здесь есть инструкции (которые я еще не попробовал), которые описывают сборку в 2008 году после запуска файлов проекта 7.1 с помощью мастера преобразования.

Первоначально я попробовал GnuWin32 сборку libpng , но (кроме 32-битного) он потерпел крах при вызове libpng для fwrite при передаче FILE * из CRT VS2008. В собственной документации libpng есть что сказать об этом и об опасностях смешивания различных версий MSVC, но предлагаемый ими способ работы имеет отношение только к прямым пользователям libpng (и я использую его через boost GIL).

Обновление: преобразованные файлы проекта работают довольно хорошо (возможно, некоторые незначительные очевидные исправления). Безусловно, большая часть работы заключалась в создании 64-битных сборок; исходные и преобразованные файлы проекта не включают в себя такую ​​конфигурацию, и, хотя Visual Studio приложит все усилия для их создания, было достаточно много настроек для редактирования диалогов, чтобы получить согласованные имена папок / файлов и т. д.

...