我使用zlib的-1.2.8和我打電話在我的代碼compress2(dest, destLen, source, sourceLen, level)
從compress.c壓縮數據。的Zlib調用deflateInit功能總是返回Z_MEM_ERROR
功能compress2 (dest, destLen, source, sourceLen, level)
呼籲 deflateInit(&stream, level);
deflateInit是宏。
#define deflateInit(strm, level) \
deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream))
也就是說compress2呼籲deflateInit_。 我的問題是deflateInit_正在返回Z_MEM_ERROR
。
我想調試deflateInit_但沒有得到任何我已經放在那裏的調試消息。
而且我評論的所有exising代碼中的功能deflateInit_和即Z_BUF_ERROR
函數返回不同的錯誤,但仍然deflateInit_將返回Z_MEM_ERROR
。 在這裏,如果我明確回到Z_BUF_ERROR
仍然是getting Z_MEM_ERROR
。
請給我一些這種行爲背後的指針。
我正在從zlib-1-2-3更新zlib庫到zlib-1-2-8。 但我沒有得到早期版本的zlib的這個錯誤。即zlib-1-2-3。 這是否意味着zlib-1-2-3分配較小的內存? – 2014-09-06 14:08:42
不,他們分配相同的內存。你使用什麼樣的系統?我懷疑,在這個擁有多GB內存的系統中,你有一個無法提供260K內存的系統。肯定會有更深層的錯誤。 – 2014-09-06 15:42:03
如果您對zlib進行了更改,但沒有看到行爲發生變化,那麼您可能沒有運行您剛剛構建的zlib,而是使用鏈接器在您的zlib(libz.so *)上找到的其他一些zlib副本電腦。嘗試使用「ldd」來查明。 – 2014-09-07 22:05:11