为windows mobile 6编译zlib

Srv*_*v19 4 c zlib windows-mobile visual-studio-2008

我正在尝试在Visual Studio 2008中为Windows Mobile编译zlib.

但是,这会导致错误.在文件zconf.h中包含文件sys/types.h.

虽然这个文件是在标准的visual studio include目录中,但是windows mobile sdk附带的文件夹ce/include中没有sys子文件夹,而且这里没有types.h文件.

因此,zlb无法编译.

该如何解决?

更新:包含本身在#if块中.再具体一点:

#ifdef STDC
#  ifndef Z_SOLO
#    include <sys/types.h>      /* for off_t */
#  endif
#endif
Run Code Online (Sandbox Code Playgroud)

这带来了另一个问题.Z_SOLO宏的含义是什么?它充斥在#ifdef中,就像在zlib中一样,但是搜索它并不能给出应该是什么的线索.顺便说一下,它没有定义.

Mar*_*ler 7

Z_SOLO用于编译和使用zlib而不使用任何外部库.它适用于嵌入式环境.没有gz*函数,还取出了依赖于内存分配的其他几个函数(compress(),uncompress()).deflateInit()必须为基本zlib初始化函数(例如)提供内存分配函数.这将避免您使用Windows Mobile时遇到的所有问题都没有标准的C库头和函数.

为了使用Z_SOLO你需要编辑zconf.h#define Z_SOLO接近开头.然后编译zlib并将其与编辑后的内容一起使用zconf.h.(如果你只编译Z_SOLO,但不编辑zconf.h,那么你会搞砸你尝试使用编译的zlib与头文件.)