strukturag / libheif

libheif is an HEIF and AVIF file format decoder and encoder.
Other
1.7k stars 298 forks source link

1.18.2 fails to build for 32bit Windows #1262

Closed lazka closed 1 month ago

lazka commented 1 month ago

clang:

  D:\M\msys64\clang32\bin\clang++.exe -DENABLE_MULTITHREADING_SUPPORT=1 -DENABLE_PARALLEL_TILE_DECODING=1 -DHAVE_AOM_DECODER=1 -DHAVE_AOM_ENCODER=1 -DHAVE_BROTLI=1 -DHAVE_DAV1D=1 -DHAVE_JPEG_DECODER=1 -DHAVE_JPEG_ENCODER=1 -DHAVE_KVAZAAR=1 -DHAVE_KVAZAAR_ENABLE_LOGGING=1 -DHAVE_LIBDE265=1 -DHAVE_LIBSHARPYUV=1 -DHAVE_OPENJPEG_DECODER=1 -DHAVE_OPENJPEG_ENCODER=1 -DHAVE_RAV1E=1 -DHAVE_UNISTD_H -DHAVE_VISIBILITY -DHAVE_X265=1 -DHAVE_ZLIB=1 -DLIBHEIF_EXPORTS -Dheif_EXPORTS -IC:/_/B/src/build-CLANG32 -IC:/_/B/src/libheif-1.18.2/libheif -IC:/_/B/src/libheif-1.18.2/libheif/api -IC:/_/B/src/libheif-1.18.2/include/libheif -IC:/_/B/src/libheif-1.18.2/include -ID:/M/msys64/clang32/include/rav1e -ID:/M/msys64/clang32/include/webp -isystem D:/M/msys64/clang32/include/openjpeg-2.5 -march=pentium4 -mtune=generic -O2 -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -O3 -DNDEBUG -std=c++11 -fvisibility=hidden -fvisibility-inlines-hidden   -Wall -Werror -Wsign-compare -Wconversion -Wno-sign-conversion -Wno-error=conversion -Wno-error=unused-parameter -Wno-error=deprecated-declarations -Wno-error=tautological-compare -Wno-error=tautological-constant-out-of-range-compare -Wno-error=potentially-evaluated-expression -MD -MT libheif/CMakeFiles/heif.dir/plugins/decoder_openjpeg.cc.obj -MF libheif\CMakeFiles\heif.dir\plugins\decoder_openjpeg.cc.obj.d -o libheif/CMakeFiles/heif.dir/plugins/decoder_openjpeg.cc.obj -c C:/_/B/src/libheif-1.18.2/libheif/plugins/decoder_openjpeg.cc
  C:/_/B/src/libheif-1.18.2/libheif/plugins/decoder_openjpeg.cc:259:56: error: no matching constructor for initialization of 'std::unique_ptr<opj_codec_t, void (*)(opj_codec_t *)>' (aka 'unique_ptr<void *, void (*)(void **)>')
    259 |   std::unique_ptr<opj_codec_t, void (*)(opj_codec_t*)> l_codec(opj_create_decompress(OPJ_CODEC_J2K),
        |                                                        ^       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    260 |                                                                opj_destroy_codec);

gcc:

  D:\M\msys64\mingw32\bin\g++.exe -DENABLE_MULTITHREADING_SUPPORT=1 -DENABLE_PARALLEL_TILE_DECODING=1 -DHAVE_AOM_DECODER=1 -DHAVE_AOM_ENCODER=1 -DHAVE_BROTLI=1 -DHAVE_DAV1D=1 -DHAVE_JPEG_DECODER=1 -DHAVE_JPEG_ENCODER=1 -DHAVE_KVAZAAR=1 -DHAVE_KVAZAAR_ENABLE_LOGGING=1 -DHAVE_LIBDE265=1 -DHAVE_LIBSHARPYUV=1 -DHAVE_OPENJPEG_DECODER=1 -DHAVE_OPENJPEG_ENCODER=1 -DHAVE_RAV1E=1 -DHAVE_UNISTD_H -DHAVE_VISIBILITY -DHAVE_X265=1 -DHAVE_ZLIB=1 -DLIBHEIF_EXPORTS -Dheif_EXPORTS -IC:/_/B/src/build-MINGW32 -IC:/_/B/src/libheif-1.18.2/libheif -IC:/_/B/src/libheif-1.18.2/libheif/api -IC:/_/B/src/libheif-1.18.2/include/libheif -IC:/_/B/src/libheif-1.18.2/include -ID:/M/msys64/mingw32/include/rav1e -ID:/M/msys64/mingw32/include/webp -isystem D:/M/msys64/mingw32/include/openjpeg-2.5 -march=pentium4 -mtune=generic -O2 -pipe -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong -O3 -DNDEBUG -std=c++11 -fvisibility=hidden -fno-keep-inline-dllexport   -Wall -Werror -Wsign-compare -Wconversion -Wno-sign-conversion -Wno-error=conversion -Wno-error=unused-parameter -Wno-error=deprecated-declarations -MD -MT libheif/CMakeFiles/heif.dir/plugins/decoder_openjpeg.cc.obj -MF libheif\CMakeFiles\heif.dir\plugins\decoder_openjpeg.cc.obj.d -o libheif/CMakeFiles/heif.dir/plugins/decoder_openjpeg.cc.obj -c C:/_/B/src/libheif-1.18.2/libheif/plugins/decoder_openjpeg.cc
  C:/_/B/src/libheif-1.18.2/libheif/plugins/decoder_openjpeg.cc: In function 'heif_error openjpeg_decode_image(void*, heif_image**)':
  C:/_/B/src/libheif-1.18.2/libheif/plugins/decoder_openjpeg.cc:260:81: error: no matching function for call to 'std::unique_ptr<void*, void (*)(void**)>::unique_ptr(void**, void (__attribute__((stdcall)) &)(void**))'
    260 |                                                                opj_destroy_codec);
lazka commented 1 month ago

I'll create a PR