使用VxWorks 6.8进行zlib编译错误

时间:2016-09-07 11:51:08

标签: c++ compilation zlib vxworks

我正在尝试在VxWorks 6.8上使用gzip压缩功能。

VxWorks开发指南帮助说,

  

您可以单独将gzip压缩功能添加到系统中   通过将zlib库文件添加到您的Wind River Web Server   项目。为此,请添加文件   installDir / components / webcli-4.x / target / src / wrn / wm / common / zlib给你的   项目。然后在构建时使用-DWITH_ZLIB编译器标志   系统

我尝试了但是出现了构建错误

../zlib/zlib_adler32.cpp:21: error: 'z_uLong zlib_z_adler32' redeclared as different kind of symbol

../zlib/zlib.h:822: error: previous declaration of 'z_uLong zlib_z_adler32(z_uLong, const z_Bytef*, z_uInt)'

../zlib/zlib_adler32.cpp:25: error: expected unqualified-id before '{' token 
C:\WindRiver\utilities-1.0\x86-win32\bin\make.exe: *** [.../zlib/zlib_adler32.o] Error 1 

注意:文件扩展名为.c,将其更改为.cpp并使用C ++编译器。函数使用extern“C”声明

该函数的声明可以是checked here

ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len));

有任何线索吗?

1 个答案:

答案 0 :(得分:0)

问题在于GNU C ++不支持C旧样式定义

uLong ZEXPORT adler32(adler,buf,len)     你是阿德勒     const Bytef * buf;     你不看     {...}

已更正 uLong ZEXPORT adler32(uLong adler,const Bytef * buf,uInt len){...}

解决了我的问题。