Compile vlc 3.0.2 for Win32 under ubuntu 18.04
Posted: 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.
2. libfaad.a [passed?]
When go through the following step
an error appears:
After check with the config.log file that contains the error information as following:
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:
Oops, error indicate that there are more libraries built on vs2015 that the i686-w64-mingw32 can not support.
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:
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:
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...
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
When go through the following step
Code: Select all
$ ../extras/package/win32/configure.sh --host=HOST-TRIPLET --build=x86_64-pc-linux-gnu
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
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'
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
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
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'
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.
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...