MediaInfoLib
MediaInfoLib copied to clipboard
Emscripten - error: call to 'ToZtring' is ambiguous
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?
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.