MediaInfoLib icon indicating copy to clipboard operation
MediaInfoLib copied to clipboard

Emscripten - error: call to 'ToZtring' is ambiguous

Open tw-git opened this issue 5 years ago • 1 comments

When trying to cross-compile to WebAssembly by using emscripten, I get a lot of ambiguity errors. Repro steps:

# setup emscripten env first: https://emscripten.org/docs/getting_started/downloads.html#installation-instructions
cd /tmp
git clone https://github.com/madler/zlib
git clone https://github.com/MediaArea/ZenLib
git clone https://github.com/MediaArea/MediaInfoLib
mkdir build
cd build
emcmake cmake ../MediaInfoLib/Project/CMake/ -DBUILD_ZENLIB=ON -DBUILD_ZLIB=ON
emmake make 

Errors while building target mediainfo:

Scanning dependencies of target mediainfo
[ 14%] Building C object CMakeFiles/mediainfo.dir/tmp/MediaInfoLib/Source/ThirdParty/md5/md5.c.o
[ 15%] Building C object CMakeFiles/mediainfo.dir/tmp/MediaInfoLib/Source/ThirdParty/aes-gladman/aes_modes.c.o
[ 15%] Building C object CMakeFiles/mediainfo.dir/tmp/MediaInfoLib/Source/ThirdParty/aes-gladman/aescrypt.c.o
[ 15%] Building C object CMakeFiles/mediainfo.dir/tmp/MediaInfoLib/Source/ThirdParty/aes-gladman/aeskey.c.o
[ 16%] Building C object CMakeFiles/mediainfo.dir/tmp/MediaInfoLib/Source/ThirdParty/aes-gladman/aestab.c.o
[ 16%] Building C object CMakeFiles/mediainfo.dir/tmp/MediaInfoLib/Source/ThirdParty/sha1-gladman/sha1.c.o
[ 16%] Building C object CMakeFiles/mediainfo.dir/tmp/MediaInfoLib/Source/ThirdParty/sha2-gladman/sha2.c.o
[ 17%] Building C object CMakeFiles/mediainfo.dir/tmp/MediaInfoLib/Source/ThirdParty/hmac-gladman/hmac.c.o
[ 17%] Building CXX object CMakeFiles/mediainfo.dir/tmp/MediaInfoLib/Source/MediaInfo/File__Analyze.cpp.o
[ 17%] Building CXX object CMakeFiles/mediainfo.dir/tmp/MediaInfoLib/Source/MediaInfo/File__Analyze_Buffer.cpp.o
/tmp/MediaInfoLib/Source/MediaInfo/File__Analyze_Buffer.cpp:2304:33: error: call to 'ToZtring' is ambiguous
            Param_Info(__T("(")+Ztring::ToZtring(Bits)+__T(" bits)"));
                                ^~~~~~~~~~~~~~~~
/tmp/MediaInfoLib/Project/CMake/../../../ZenLib/Source/ZenLib/Ztring.h:303:19: note: candidate function
    static Ztring ToZtring  (const int8s    I, int8u Radix=10)                   {return Ztring().From_Number(I, Radix);}
                  ^
/tmp/MediaInfoLib/Project/CMake/../../../ZenLib/Source/ZenLib/Ztring.h:304:19: note: candidate function
    static Ztring ToZtring  (const int8u    I, int8u Radix=10)                   {return Ztring().From_Number(I, Radix);}
                  ^
/tmp/MediaInfoLib/Project/CMake/../../../ZenLib/Source/ZenLib/Ztring.h:305:19: note: candidate function
    static Ztring ToZtring  (const int16s   I, int8u Radix=10)                   {return Ztring().From_Number(I, Radix);}
                  ^
...

As you are offering a WebAssembly build here, I think it must be possible somehow. So, am I just missing some options/compiler flags? Is there some documentation on how to compile MediaInfoLib to WebAssembly by using emscripten? How do you do it?

tw-git avatar Sep 27 '20 05:09 tw-git

We build the JavaScript library with the autotools.

All is in this script https://github.com/MediaArea/MediaInfoLib/blob/master/Project/GNU/Library/AddThisToRoot_DLL_compile.sh

I will check for the error with cmake.

g-maxime avatar Sep 28 '20 07:09 g-maxime