Я пытаюсь собрать cairo на Windows, используя MinGW (и MSYS). Я следую инструкциям по Компиляции GTK + 2.16.4 для Windows , за исключением того, что я использую последние версии, когда это возможно, то есть:
- Zlib-1.2.3
- Libpng-1.2.42
- pixman-0.17.4
- каир-1.8.8
Это работает довольно хорошо до тех пор, пока я не попытаюсь построить реальный Каир. Конфигурация прошла успешно, но во время make cairo, похоже, возникли проблемы с подключением к моей сборке libpng. Через некоторое время я получаю длинный список ошибок, таких как этот:
.libs/cairo-png.o: In function `png_simple_error_callback':
/home/user/cairo-1.8.8/src/cairo-png.c:95: undefined reference to `png_get_error_ptr'
.libs/cairo-png.o: In function `png_simple_warning_callback':
/home/user/cairo-1.8.8/src/cairo-png.c:112: undefined reference to `png_get_error_ptr'
...
.libs/cairo-png.o: In function `stream_read_func':
/home/user/cairo-1.8.8/src/cairo-png.c:686: undefined reference to `png_error'
collect2: ld returned 1 exit status
make[3]: *** [libcairo.la] Error 1
make[3]: Leaving directory `/home/user/cairo-1.8.8/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/user/cairo-1.8.8/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/user/cairo-1.8.8'
make: *** [all] Error 2
Я попытался использовать более старую версию libpng (1.2.40, версия распространяется GTK + Project ), с тем же результатом. Когда я запускаю «pkg-config -cflags -libs libpng», я получаю «-IC: / MinGW / include / libpng12 -LC: / MinGW / lib -lpng12», что кажется правильным. Я уверен, что совершаю какую-то глупую ошибку, но я не могу сказать, что это такое.