Compile vlc 3.0.2 for Win32 under ubuntu 18.04

Microsoft Windows specific usage questions
Forum rules
Please post only Windows specific questions in this forum category. If you don't know where to post, please read the different forums' rules. Thanks.
iosage
New Cone
New Cone
Posts: 4
Joined: 21 May 2018 06:47

Compile vlc 3.0.2 for Win32 under ubuntu 18.04

Postby iosage » 21 May 2018 08:27

I compiled vlc 2.2.5.1 last year following the wiki document https://wiki.videolan.org/Win32Compile/ with prebuilt libraries, however, I can not compile the 3.0.x version with the same procedure.
My build is based on ubuntu18.04 64bit desktop, and the target is the recommended win32 version. Here are the issues I met, some of them are solved, but others are not solved.
I will try to make the compile pass, and will be update the topic when I have any progress.
1. lua5.2 [passed]
After install all the packages referenced in the wiki document, the check of lua5.2 will fail.
This issued could be solved by install lua-5.2:i386 instead.

Code: Select all

apt-get install lua-5.2:i386
2. libfaad.a [passed?]
When go through the following step

Code: Select all

$ ../extras/package/win32/configure.sh --host=HOST-TRIPLET --build=x86_64-pc-linux-gnu
an error appears:

Code: Select all

checking neaacdec.h usability... yes checking neaacdec.h presence... yes checking for neaacdec.h... yes checking for NeAACDecOpen in -lfaad... no configure: error: cannot find FAAD library
After check with the config.log file that contains the error information as following:

Code: Select all

/home/zhengdao/develop/gitroot/pctools/mptool/vlc-3.0.2/contrib/i686-w64-mingw32/lib/libfaad.a(syntax.o): In function `latmAudioMuxElement': /home/jenkins/workspace/vlc-nightly/vlc-nightly-win32-x86/contrib/contrib-win32/faad2/libfaad/syntax.c:2578: undefined reference to `_imp____acrt_iob_func'
I think libfaad.a is generated by using vs2015, which i686-w64-mingw32 can not support with the symbols _imp____acrt_iob_func.
Since I still have the previous tarball for 2.2.5.1, I decide to replace it with the 2.2.5.1 included libfaad.a instead.
This time, it passed the procedure.
3. libintl.a & libgcrypt.a [passed?]
After configure, I can do the make now:

Code: Select all

make
Oops, error indicate that there are more libraries built on vs2015 that the i686-w64-mingw32 can not support.

Code: Select all

/home/zhengdao/develop/gitroot/pctools/mptool/vlc-3.0.2/contrib/i686-w64-mingw32/lib/libintl.a(printf.o): In function `libintl_vprintf': /home/jenkins/workspace/vlc-nightly/vlc-nightly-win32-x86/contrib/contrib-win32/gettext/gettext-tools/intl/../../gettext-runtime/intl/printf.c:138: undefined reference to `_imp____acrt_iob_func' /home/zhengdao/develop/gitroot/pctools/mptool/vlc-3.0.2/contrib/i686-w64-mingw32/lib/libgcrypt.a(libgcrypt_la-misc.o): In function `gcry_logv': /home/jenkins/workspace/vlc-nightly/vlc-nightly-win32-x86/contrib/contrib-win32/gcrypt/src/misc.c:124: undefined reference to `_imp____acrt_iob_func' /home/zhengdao/develop/gitroot/pctools/mptool/vlc-3.0.2/contrib/i686-w64-mingw32/lib/libgcrypt.a(libgcrypt_la-misc.o):/home/jenkins/workspace/vlc-nightly/vlc-nightly-win32-x86/contrib/contrib-win32/gcrypt/src/misc.c:133: more undefined references to `_imp____acrt_iob_func' follow
So I replaced both with the contribute tarball of 2.2.5.1, and make again.
4. libgpg-error.a [passed?]
This time the error message says:

Code: Select all

/home/zhengdao/develop/gitroot/pctools/mptool/vlc-3.0.2/contrib/i686-w64-mingw32/lib/libgpg-error.a(libgpg_error_la-init.o): In function `gpgrt_internal_trace_begin': /home/jenkins/workspace/vlc-nightly/vlc-nightly-win32-x86/contrib/contrib-win32/libgpg-error/src/init.c:240: undefined reference to `_imp____acrt_iob_func'
So I overwrite the libgpg-error.a with the one from 2.2.5.1, and make again.
5. mta_holder.h
This time I hit the wall:

Code: Select all

CXX access/dshow/dshow.lo ../../extras/package/win32/../../../modules/access/dshow/dshow.cpp:55:10: fatal error: ../src/win32/mta_holder.h: No such file or directory #include "../src/win32/mta_holder.h" ^~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated.
There is no such header file in 2.2.5.1, so I need to find one.
Luckily I found it on the git server:
https://raw.githubusercontent.com/video ... a_holder.h
put it to src/win32/mta_holder.h, and make again.
6. libvncclient.a & libjpeg.a & libgnutls.a & libcddb.a & libdvdnav.a &libdvdread.a & libdvdcss.a and much more
The missing symbol issue keeps popup, I decided to use the manual build instead...

Return to “VLC media player for Windows Troubleshooting”

Who is online

Users browsing this forum: Lotesdelere, mazerunner32 and 43 guests