Page 1 of 1

win32 compile error!!! 5 days....

Posted: 01 Apr 2018 14:43
by avsuper
OMG!!!! It has been 5 days since I try to compile vlc win32 version on ubuntu 16.40.... fail and fail and fail and fail and fail.......
I've install everything according to the instructions. And now I use this instead of configiure:
../extras/package/win32/configure.sh --host=i686-w64-mingw32
Then I got error like:

libliveMedia.a: In function `ZN14MP3StreamStateD2Ev':
/home/jenkins/workspace/vlc-nightly/vlc-nightly-win32-x86/contrib/contrib-win32/live555/liveMedia/MP3StreamState.cpp:40: undefined reference to `_imp____acrt_iob_func'

I've try vlc3.0, 3.0.1, 4.0, every version....
What should I do now? OMG, help.............

Re: win32 compile error!!! 5 days....

Posted: 02 Apr 2018 20:57
by sr99622
This error seems to come from some sort of Microsoft C++ compiler change made a couple years ago. If I remember correctly it springs up if you try to use the prebuilt contrib libraries. You may be able to overcome the error by following the manual build instructions for contrib. Basically after bootstrapping from contrib/win32 just type make and the libraries will start downloading. Depending on your configuration, you will see some errors that you will have to fix along the way, hopefully you can get through those and once the contribs are fully compiled, the i686-w64-mingw32 host configuration should work.

You could also try compiling using docker, but I am not as familiar with that path

Re: win32 compile error!!! 5 days....

Posted: 03 Apr 2018 09:21
by Jean-Baptiste Kempf
Compiling VLC is difficult. Are you sure you really need to compile it? If so, use the official docker.

Re: win32 compile error!!! 5 days....

Posted: 03 Apr 2018 17:21
by avsuper
Thanks for reply. I need to compile vlc because I want to add a recorder function into it.
And also I want to remove the black screen shen switching from one URL to another.
(v2.2.x has no this problem, only v3.0.x)

Re: win32 compile error!!! 5 days....

Posted: 05 Apr 2018 12:00
by chouquette
The error you get is usually a mismatching compiler between the prebuilt contribs and the compiler you use for building VLC.

If you want to use a different compiler than ours (which is:
$> i686-w64-mingw32-g++ -v
Using built-in specs.
COLLECT_GCC=i686-w64-mingw32-g++
COLLECT_LTO_WRAPPER=/opt/gcc-i686/libexec/gcc/i686-w64-mingw32/6.4.0/lto-wrapper
Target: i686-w64-mingw32
Configured with: ../configure --prefix=/opt/gcc-i686 --target=i686-w64-mingw32 --enable-languages=c,c++ --enable-lto --disable-shared --disable-multilib
Thread model: win32
gcc version 6.4.0 (GCC)

then you'll need to build all the contribs yourself