Giter Club home page Giter Club logo

unziplib's Issues

how to unzip and LCDdisplay the included PNG files ?

Hi,

Thanks a lot to share those nice library

I already use PNGdec for some firmware running on ESP32
Now I would like to extract PGN from a ZIP located on my SD cardand send this on LCD

I start with you nice sample code but done for BMP image
I try to change and add PNGdec but I cannot succeed to extract image

I saw you do extract image here
icBitmap = (uint8_t *)malloc(fi.uncompressed_size); // allocate enough to hold the bitmap

But how to pass this to PNGdec ?
As using filemane give me dimension and other things but cannot decode and display

Kind regards

conflicting with other

Hi,

I have tested the SD example that works good
But porting the library in my sketch ( just #include <unzipLIB.h>) bring compilation error :

c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\adler32.c.o: in function adler32_z': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/adler32.c:67: multiple definition of adler32_z'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\adler32.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/adler32.c:67: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\adler32.c.o: in function adler32': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/adler32.c:138: multiple definition of adler32'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\adler32.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/adler32.c:138: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\adler32.c.o: in function adler32_combine': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/adler32.c:176: multiple definition of adler32_combine'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\adler32.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/adler32.c:176: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\adler32.c.o: in function adler32_combine64': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/adler32.c:184: multiple definition of adler32_combine64'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\adler32.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/adler32.c:184: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\crc32.c.o: in function get_crc_table': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/crc32.c:189: multiple definition of get_crc_table'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\crc32.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/crc32.c:189: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\crc32.c.o: in function crc32_z': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/crc32.c:206: multiple definition of crc32_z'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\crc32.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/crc32.c:206: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\crc32.c.o: in function crc32': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/crc32.c:241: multiple definition of crc32'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\crc32.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/crc32.c:241: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\crc32.c.o: in function crc32_combine': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/crc32.c:432: multiple definition of crc32_combine'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\crc32.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/crc32.c:432: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\crc32.c.o: in function crc32_combine64': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/crc32.c:440: multiple definition of crc32_combine64'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\crc32.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/crc32.c:440: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\infback.c.o: in function inflateBackInit_': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/infback.c:34: multiple definition of inflateBackInit_'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\infback.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/infback.c:34: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\infback.c.o: in function inflateBack': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/infback.c:256: multiple definition of inflateBack'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\infback.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/infback.c:256: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\infback.c.o: in function inflateBackEnd': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/infback.c:633: multiple definition of inflateBackEnd'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\infback.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/infback.c:633: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\inffast.c.o: in function inflate_fast': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/inffast.c:53: multiple definition of inflate_fast'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\inffast.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/inffast.c:53: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\inflate.c.o: in function inflateResetKeep': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/inflate.c:121: multiple definition of inflateResetKeep'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\inflate.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/inflate.c:121: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\inflate.c.o: in function inflateReset': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/inflate.c:146: multiple definition of inflateReset'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\inflate.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/inflate.c:146: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\inflate.c.o: in function inflateReset2': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/inflate.c:160: multiple definition of inflateReset2'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\inflate.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/inflate.c:160: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\inflate.c.o: in function inflateInit2_': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/inflate.c:201: multiple definition of inflateInit2_'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\inflate.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/inflate.c:200: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\inflate.c.o: in function inflateInit_': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/inflate.c:247: multiple definition of inflateInit_'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\inflate.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/inflate.c:244: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\inflate.c.o: in function inflatePrime': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/inflate.c:255: multiple definition of inflatePrime'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\inflate.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/inflate.c:252: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\inflate.c.o: in function inflate': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/inflate.c:631: multiple definition of inflate'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\inflate.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/inflate.c:626: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\inflate.c.o: in function inflateEnd': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/inflate.c:1293: multiple definition of inflateEnd'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\inflate.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/inflate.c:1280: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\inflate.c.o: in function inflateGetDictionary': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/inflate.c:1309: multiple definition of inflateGetDictionary'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\inflate.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/inflate.c:1296: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\inflate.c.o: in function inflateSetDictionary': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/inflate.c:1332: multiple definition of inflateSetDictionary'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\inflate.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/inflate.c:1319: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\inflate.c.o: in function inflateGetHeader': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/inflate.c:1366: multiple definition of inflateGetHeader'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\inflate.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/inflate.c:1353: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\inflate.c.o: in function inflateSync': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/inflate.c:1416: multiple definition of inflateSync'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\inflate.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/inflate.c:1403: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\inflate.c.o: in function inflateSyncPoint': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/inflate.c:1467: multiple definition of inflateSyncPoint'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\inflate.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/inflate.c:1454: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\inflate.c.o: in function inflateCopy': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/inflate.c:1478: multiple definition of inflateCopy'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\inflate.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/inflate.c:1465: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\inflate.c.o: in function inflateUndermine': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/inflate.c:1525: multiple definition of inflateUndermine'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\inflate.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/inflate.c:1512: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\inflate.c.o: in function inflateValidate': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/inflate.c:1543: multiple definition of inflateValidate'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\inflate.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/inflate.c:1530: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\inflate.c.o: in function inflateMark': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/inflate.c:1557: multiple definition of inflateMark'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\inflate.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/inflate.c:1544: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\inflate.c.o: in function inflateCodesUsed': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/inflate.c:1570: multiple definition of inflateCodesUsed'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\inflate.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/inflate.c:1557: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\inftrees.c.o: in function inflate_table': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/inftrees.c:39: multiple definition of inflate_table'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\inftrees.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/inftrees.c:39: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\inftrees.c.o:c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/inftrees.c:11: multiple definition of inflate_copyright'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\inftrees.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/inftrees.c:11: first defined here c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\zutil.c.o: in function zlibVersion':
c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/zutil.c:28: multiple definition of zlibVersion'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\zutil.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/zutil.c:28: first defined here c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\zutil.c.o: in function zlibCompileFlags':
c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/zutil.c:33: multiple definition of zlibCompileFlags'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\zutil.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/zutil.c:33: first defined here c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\zutil.c.o:c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/zutil.c:13: multiple definition of z_errmsg'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\zutil.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/zutil.c:13: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\zutil.c.o: in function zError': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/zutil.c:135: multiple definition of zError'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\zutil.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/zutil.c:135: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\zutil.c.o: in function zcalloc': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/zutil.c:309: multiple definition of zcalloc'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\zutil.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/zutil.c:309: first defined here
c:/users/francis/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\arduino_783879\zutil.c.o: in function zcfree': c:\Users\francis\Documents\Arduino\libraries\arduino_783879\src/zutil.c:319: multiple definition of zcfree'; C:\Users\francis\AppData\Local\Temp\arduino\sketches\358A2753F82A48EF6338E76ED220E33A\libraries\unzipLIB-master\zutil.c.o:c:\Users\francis\Documents\Arduino\libraries\unzipLIB-master\src/zutil.c:319: first defined here
collect2.exe: error: ld returned 1 exit status

Any suggestion for fixing those problem ?

best rgds

Chunk by chunk read

Hi,

I'm still not able to read the unzipped data chunk by chunk.
If I would read it at once, It would not fit into RAM. My unzipped data size is 393 KB
If I comment out Block 2, it is working, but I would like to read 512 bytes one after another:

...
#define BUFF_SIZE 512
static uint8_t l_Buff[BUFF_SIZE];
...
    // Block 1
    zip.openCurrentFile();
    mySeek(&myfile, 0, SEEK_SET);
    int readSize = zip.readCurrentFile(l_Buff, BUFF_SIZE);
    Serial.print("Bytes read in buffer: "); Serial.println(readSize);
    binFile.write(l_Buff, BUFF_SIZE);

    // Block 2
    mySeek(&myfile, 512, SEEK_SET);
    readSize = zip.readCurrentFile(l_Buff, BUFF_SIZE);
    Serial.print("Bytes read in buffer: "); Serial.println(readSize);
    binFile.write(l_Buff, BUFF_SIZE);

if ZIP file is not OK or not a ZIP file, it crashed

If ZIP file is not OK or not a ZIP file, it crashed.

If I open a ZIP file, that is not OK, e.g. wrong transmission from server or not a ZIP file, it crashed.

Guru Meditation Error: Core 1 panic'ed (InstrFetchProhibited). Exception was unhandled.

Core 1 register dump:
PC : 0x00000000 PS : 0x00060330 A0 : 0x800e1e2d A1 : 0x3ffb2150
A2 : 0x00000000 A3 : 0x48004901 A4 : 0x00000000 A5 : 0x3ffc692c
A6 : 0x48000101 A7 : 0x00000000 A8 : 0x800e1e0c A9 : 0x3ffb2120
A10 : 0x3ffc692c A11 : 0x3ffb2178 A12 : 0x0000f15c A13 : 0x0000f15c
A14 ets Jul 29 2019 12:21:46

Please insert a function to compare the ZIP file, if it is correct.

Chunkwise write the uncompressed file.

Hi,

I could create a simple program to test your library with SdFat library, instead of standard Arduino SD.
But I realized, that I still have a problem.
I would like to implement FOTA, so I will download the application.zip file.
Then I want to unzip it (application.bin).
The .bin file is quite large (393216 byte). I don't have this much memory. (I have 56+4 KB of SRAM on STM32F429ZI).

So my question, how can I use your library, so that I can write this larga application.bin to the SD card in chunkwise manner?

Here is my code:

#include <Arduino.h>
#include <unzipLIB.h>
#include "SdFat.h"
#include "sdios.h"

SPIClass SPI_4(PE6, PE5, PE2); // MOSI, MISO. SCLK
const uint8_t SD_CS_PIN = PE4;
#define SD_CONFIG SdSpiConfig(SD_CS_PIN, DEDICATED_SPI, SD_SCK_MHZ(4), &SPI_4)

UNZIP zip; // statically allocate the UNZIP structure (41K)
SdFat sd;
File root;
static File myfile;
static File myfileAnother;

void * myOpen(const char *filename, int32_t *size) {
  root.open("/");
  myfileAnother.open(filename);
  *size = (uint32_t)myfileAnother.fileSize();
  return (void *)&myfileAnother;
}

void myClose(void *p) {
  ZIPFILE *pzf = (ZIPFILE *)p;
  File *f = (File *)pzf->fHandle;
  if (f) f->close();
}

int32_t myRead(void *p, uint8_t *buffer, int32_t length) {
  ZIPFILE *pzf = (ZIPFILE *)p;
  File *f = (File *)pzf->fHandle;
  return f->read(buffer, length);
}

int32_t mySeek(void *p, int32_t position, int iType) {
  ZIPFILE *pzf = (ZIPFILE *)p;
  File *f = (File *)pzf->fHandle;
  if (iType == SEEK_SET)
    return f->seek(position);
  else if (iType == SEEK_END) {
    return f->seek(position + pzf->iSize); 
  } else { // SEEK_CUR
    long l = f->position();
    return f->seek(l + position);
  }
}

void setup() {
  Serial.begin(115200);

  while (!Serial && millis() < 3000);
  Serial.println("Search for ZIP files on the SD card");
  
  if (!sd.begin(SD_CONFIG))
  {
    sd.initErrorHalt(&Serial);
    Serial.println("Unable to access SD Card");
  }

  if (!root.open("/"))
  {
    Serial.println("Open root failed");
  }
  //////////////////////////////////////////////////////////////////////////////
  int rc;
  char szComment[256], szName[256];
  unz_file_info fi;

  const char *name = "application.zip";
  if (!myfile.open(name, O_RDONLY))
  {
    Serial.println("Opening application.zip failed");
  }
  Serial.println("Openend application.zip");
  rc = rc = zip.openZIP(name, myOpen, myClose, myRead, mySeek);
  if (rc == UNZ_OK) {
    Serial.print("ZIP file found");

    // Display the global comment and all of the filenames within
    rc = zip.getGlobalComment(szComment, sizeof(szComment));
    Serial.print("Files in this archive: ");
    zip.gotoFirstFile();
    rc = UNZ_OK;
    rc = zip.getFileInfo(&fi, szName, sizeof(szName), NULL, 0, szComment, sizeof(szComment));

    if (rc == UNZ_OK) {
      Serial.println(szName);
      Serial.print("Compressed size: "); Serial.println(fi.compressed_size, DEC);
      Serial.print("Uncompressed size: "); Serial.println(fi.uncompressed_size, DEC);
      
    }
    zip.closeZIP();
  }
}

void loop() {}

ESP32

Good day. Please give an example of unzip to esp32 from SPIFFS. Thank you.

can't get my png

Hi,

thanks for sharing your library

I am testing your example on ESP32 to get pgn on my SD card
I found a little mistake in your code at line 85 : rc = rc = zip.openZIP(name, myOpen, myClose, myRead, mySeek);
I think it should be rc = zip.openZIP(name, myOpen, myClose, myRead, mySeek);
Right ?

Now I place a chitubox zip at root on the SD card (I check there is PNG there inside)
the serial give me

File: Carriage.ZIP
[869141][E][vfs_api.cpp:29] open(): Carriage.ZIP does not start with /

this error message seem to come from library, can you help to solve the pb ?

Kind regards

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.