Проблема компиляции libzip на Windows с MinGW - PullRequest
0 голосов
/ 31 декабря 2018

Я пытаюсь скомпилировать библиотеку libzip безуспешно.

Когда я настраиваю библиотеку с CMake GUI 3.13.2, я получаю сообщение об ошибке отсутствия включаемых файлов zlib, поэтому я настраиваю ZLIB_INCLUDE_DIR дляпапка с загруженными исходными файлами zlib (DLL является библиотекой MinGW по умолчанию из bin) и конфигурация завершается ОК, просто с предупреждением об отсутствующих библиотеках AES и BZIP2 (что должно быть хорошо, так как мне не нужны эти функции).Затем я генерирую выходные файлы в новую папку.

Но когда я пытаюсь скомпилировать проект с помощью mingw32-make, это приводит к следующей ошибке:

Scanning dependencies of target zip
[  0%] Building C object lib/CMakeFiles/zip.dir/zip_add.c.obj
In file included from C:\Users\John\Desktop\C\libzip-1.5.1\lib\zip.h:61:0,
                 from C:\Users\John\Desktop\C\libzip-1.5.1\lib\zipint.h:49,
                 from C:\Users\John\Desktop\C\libzip-1.5.1\lib\zip_add.c:36:
c:\mingw\include\stdio.h:345:12: error: expected '=', ',', ';', 'asm' or '__attr
ibute__' before '__mingw__snprintf'
 extern int __mingw_stdio_redirect__(snprintf)(char*, size_t, const char*, ...);

            ^
lib\CMakeFiles\zip.dir\build.make:62: recipe for target 'lib/CMakeFiles/zip.dir/
zip_add.c.obj' failed
mingw32-make[2]: *** [lib/CMakeFiles/zip.dir/zip_add.c.obj] Error 1
CMakeFiles\Makefile2:154: recipe for target 'lib/CMakeFiles/zip.dir/all' failed
mingw32-make[1]: *** [lib/CMakeFiles/zip.dir/all] Error 2
Makefile:139: recipe for target 'all' failed
mingw32-make: *** [all] Error 2

Я проверил заголовок stdioфайл, но я не совсем понимаю, чего ожидает компилятор.

extern int __mingw_stdio_redirect__(fprintf)(FILE*, const char*, ...);
extern int __mingw_stdio_redirect__(printf)(const char*, ...);
extern int __mingw_stdio_redirect__(sprintf)(char*, const char*, ...);
extern int __mingw_stdio_redirect__(snprintf)(char*, size_t, const char*, ...); // this line
extern int __mingw_stdio_redirect__(vfprintf)(FILE*, const char*, __VALIST);
extern int __mingw_stdio_redirect__(vprintf)(const char*, __VALIST);
extern int __mingw_stdio_redirect__(vsprintf)(char*, const char*, __VALIST);
extern int __mingw_stdio_redirect__(vsnprintf)(char*, size_t, const char*, __VALIST);

Спасибо

...