Cross compile for --host=x86_64-w64-mingw32

This forum is about all development around libVLC.
sr99622
New Cone
New Cone
Posts: 4
Joined: 22 Mar 2018 02:20

Cross compile for --host=x86_64-w64-mingw32

Postby sr99622 » 29 Mar 2018 00:43

If somebody has seen this before, maybe you could point me the right direction

cross compiling VLC for window 64 bit from debian. I have been successful at 32 bit (i686-w64-mingw32) but when I attempt windows 64 bit cross compile I keep getting the same error stream

/usr/lib/gcc/x86_64-w64-mingw32/7.3-win32/libstdc++.a(cow-stdexcept.o):(.text$_Z35_txnal_cow_string_C1_for_exceptionsPvPKcS_+0x2c): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `_ITM_RU1'
/usr/lib/gcc/x86_64-w64-mingw32/7.3-win32/libstdc++.a(cow-stdexcept.o):(.text$_Z35_txnal_cow_string_C1_for_exceptionsPvPKcS_+0x39): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `transaction clone for operator new[](unsigned long long)'
/usr/lib/gcc/x86_64-w64-mingw32/7.3-win32/libstdc++.a(cow-stdexcept.o):(.text$_Z35_txnal_cow_string_C1_for_exceptionsPvPKcS_+0x5d): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `_ITM_memcpyRtWn'
/usr/lib/gcc/x86_64-w64-mingw32/7.3-win32/libstdc++.a(cow-stdexcept.o):(.text$_Z23_txnal_cow_string_c_strPKv+0x1): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `_ITM_RU8'
/usr/lib/gcc/x86_64-w64-mingw32/7.3-win32/libstdc++.a(cow-stdexcept.o):(.text$_Z23_txnal_sso_string_c_strPKv+0x1): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `_ITM_RU8'
/usr/lib/gcc/x86_64-w64-mingw32/7.3-win32/libstdc++.a(cow-stdexcept.o):(.text$_Z20_txnal_cow_string_D1Pv+0x5): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `_ITM_RU8'
/usr/lib/gcc/x86_64-w64-mingw32/7.3-win32/libstdc++.a(cow-stdexcept.o):(.text$_Z20_txnal_cow_string_D1Pv+0x1e): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `_ITM_addUserCommitAction'
/usr/lib/gcc/x86_64-w64-mingw32/7.3-win32/libstdc++.a(cow-stdexcept.o):(.text$_ZGTtNSt11logic_errorC1EPKc+0x2e): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `_ITM_memcpyRnWt'
/usr/lib/gcc/x86_64-w64-mingw32/7.3-win32/libstdc++.a(cow-stdexcept.o):(.text$_ZGTtNSt11logic_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x2e): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `_ITM_memcpyRnWt'
/usr/lib/gcc/x86_64-w64-mingw32/7.3-win32/libstdc++.a(cow-stdexcept.o):(.text$_ZGTtNSt11logic_errorC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE+0x36): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `_ITM_RU8'
/usr/lib/gcc/x86_64-w64-mingw32/7.3-win32/libstdc++.a(cow-stdexcept.o):(.text$_ZGTtNSt11logic_errorD0Ev+0x1a): additional relocation overflows omitted from the output

Research seem to indicate that this is a gcc bug that surfaced in 2016.

https://github.com/Alexpux/MINGW-packages/issues/1580

I have just upgraded to debian version buster which has the gcc version 7 and all latest patches but I still get the error. I have to believe I'm not the first to see this, I have a new machine built expressly for the purpose with standard installs of all required software, including lib64itm1. as mentioned previously, win32 compile was successful in this environment.

Thank you in advance for any pointers.

chouquette
Developer
Developer
Posts: 291
Joined: 15 Apr 2010 00:54

Re: Cross compile for --host=x86_64-w64-mingw32

Postby chouquette » 30 Mar 2018 16:37

This is indeed a bug in libstdc++. It's been fixed upstream, but it will (hopefully?) only be released as part gcc 8

We provide a Docker image with the patch applied that you can use : registry.videolan.org:5000/vlc-debian-win64

sr99622
New Cone
New Cone
Posts: 4
Joined: 22 Mar 2018 02:20

Re: Cross compile for --host=x86_64-w64-mingw32

Postby sr99622 » 26 Jun 2018 21:58

If you've landed on this thread looking for instructions on how to cross compile for windows 64 bit from debian, here is your cheat sheet.

sudo apt-get install docker-ce
docker pull registry.videolan.org:5000/vlc-debian-win32
cd ~
mkdir win64
docker run -v ~/win64:/win64 -i -t registry.videolan.org:5000/vlc-debian-win32 /bin/bash
(...you will now be running the build environment from a docker container as root)
cd win64
git clone https://git.videolan.org/git/vlc
cd vlc
mkdir -p contrib/win32
cd contrib/win32
../bootstrap --host=x86_64-w64-mingw32 --disable-protobuf
make
(... this will take some time so turn off screensaver and go out for lunch)
cd -
./bootstrap
mkdir win32
cd win32
../extras/package/win32/configure.sh --host=x86_64-w64-mingw32 --build=x86_64-pc-linux-gnu
make
make package-win32

Jean-Baptiste Kempf
Site Administrator
Site Administrator
Posts: 37523
Joined: 22 Jul 2005 15:29
VLC version: 4.0.0-git
Operating System: Linux, Windows, Mac
Location: Cone, France
Contact:

Re: Cross compile for --host=x86_64-w64-mingw32

Postby Jean-Baptiste Kempf » 27 Jun 2018 09:00

or just use extras/package/win32/build.sh -a i686
Jean-Baptiste Kempf
http://www.jbkempf.com/ - http://www.jbkempf.com/blog/category/Videolan
VLC media player developer, VideoLAN President and Sites administrator
If you want an answer to your question, just be specific and precise. Don't use Private Messages.

newlukas
New Cone
New Cone
Posts: 7
Joined: 06 Aug 2018 13:29

Re: Cross compile for --host=x86_64-w64-mingw32

Postby newlukas » 07 Aug 2018 09:32

I was able to cross compile for win64 latest VLC (4.0) from git using docker with no problems.
My question is what's the proper way to compile current released version (3.0.3)?
I used latest docker iamge (vlc-debian-win64) and instead of cloning git repo I downloaded http://get.videolan.org/vlc/3.0.3/vlc-3.0.3.tar.xz and tried to compile it (extras/package/win32/build.sh was not present so I used commands posted above by sr99622).
I got compilation errors from gcrypt then some qt linking errors, so it seems that it's not the proper way.
I also tried to use older docker tag instead of latest but I also faced some errors.
Do you have some clues?

unidan
Developer
Developer
Posts: 1493
Joined: 25 Mar 2018 01:00

Re: Cross compile for --host=x86_64-w64-mingw32

Postby unidan » 07 Aug 2018 09:57

Hi,

Can you post the errors ?

newlukas
New Cone
New Cone
Posts: 7
Joined: 06 Aug 2018 13:29

Re: Cross compile for --host=x86_64-w64-mingw32

Postby newlukas » 07 Aug 2018 10:27

Sure, but my question is more not how to overcome compilation/linkage errors, but what is the right way to compile vlc 3.0.3 in a stable manner.
There are nightly builds of vlc 3.0.4 for win64, so vlc jenkins has probably some fixed configuration which I would like to replicate in my environment.

1.
First error was in gcrypt contrib.
I fixed it with patch for gcrypt:

--- a/configure.ac
+++ b/configure.ac
@@ -39,7 +39,7 @@
m4_define(mym4_version,
[mym4_version_major.mym4_version_minor.mym4_version_micro])
m4_define([mym4_revision],
- m4_esyscmd([git rev-parse --short HEAD | tr -d '\n\r']))
+ m4_esyscmd([printf %x $(wc -l < debian/changelog)]))
m4_define([mym4_revision_dec],
m4_esyscmd_s([echo $((0x$(echo ]mym4_revision[|head -c 4)))]))
m4_define([mym4_betastring],

2. During vlc compilation there were some qt linkage errors:
Making all in .
make[4]: Entering directory '/win64/vlc-3.0.3/win32/modules'
CXXLD libqt_plugin.la
libtool: warning: '/opt/gcc-x86_64-w64-mingw32/x86_64-w64-mingw32/lib/libssp.la' seems to be moved
libtool: warning: '/opt/gcc-x86_64-w64-mingw32/x86_64-w64-mingw32/lib/libssp.la' seems to be moved

*** Warning: Linking the shared library libqt_plugin.la against the
*** static library /win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a is not portable!

*** Warning: Linking the shared library libqt_plugin.la against the
*** static library /win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqtharfbuzzng.a is not portable!

*** Warning: Linking the shared library libqt_plugin.la against the
*** static library /win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Core.a is not portable!

*** Warning: Linking the shared library libqt_plugin.la against the
*** static library /win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqtpcre.a is not portable!
gui/qt/util/.libs/libqt_plugin_la-validators.moc.o: In function `UrlValidator::qt_metacast(char const*)':
/win64/vlc-3.0.3/win32/modules/gui/qt/util/validators.moc.cpp:79: undefined reference to `QValidator::qt_metacast(char const*)'
/win64/vlc-3.0.3/win32/modules/gui/qt/util/validators.moc.cpp:79:(.text+0x9d): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `QValidator::qt_metacast(char const*)'
gui/qt/util/.libs/libqt_plugin_la-validators.moc.o: In function `UrlValidator::qt_metacall(QMetaObject::Call, int, void**)':
/win64/vlc-3.0.3/win32/modules/gui/qt/util/validators.moc.cpp:84: undefined reference to `QValidator::qt_metacall(QMetaObject::Call, int, void**)'
/win64/vlc-3.0.3/win32/modules/gui/qt/util/validators.moc.cpp:84:(.text+0xb1): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `QValidator::qt_metacall(QMetaObject::Call, int, void**)'
gui/qt/util/.libs/libqt_plugin_la-validators.moc.o:validators.moc.cpp:(.rdata+0x60): undefined reference to `QValidator::staticMetaObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqsvg.a(main.o):main.cpp:(.text+0x52d): undefined reference to `QImageIOPlugin::qt_metacast(char const*)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqsvg.a(main.o):main.cpp:(.text+0x52d): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `QImageIOPlugin::qt_metacast(char const*)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqsvg.a(main.o):main.cpp:(.text+0x541): undefined reference to `QImageIOPlugin::qt_metacall(QMetaObject::Call, int, void**)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqsvg.a(main.o):main.cpp:(.text+0x541): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `QImageIOPlugin::qt_metacall(QMetaObject::Call, int, void**)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqsvg.a(main.o):main.cpp:(.rdata+0x20): undefined reference to `QImageIOPlugin::staticMetaObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqsvgicon.a(main.o):main.cpp:(.text+0x35d): undefined reference to `QIconEnginePlugin::qt_metacast(char const*)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqsvgicon.a(main.o):main.cpp:(.text+0x35d): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `QIconEnginePlugin::qt_metacast(char const*)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqsvgicon.a(main.o):main.cpp:(.text+0x371): undefined reference to `QIconEnginePlugin::qt_metacall(QMetaObject::Call, int, void**)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqsvgicon.a(main.o):main.cpp:(.text+0x371): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `QIconEnginePlugin::qt_metacall(QMetaObject::Call, int, void**)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqsvgicon.a(main.o):main.cpp:(.rdata+0x20): undefined reference to `QIconEnginePlugin::staticMetaObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Widgets.a(qgraphicsview.o):qgraphicsview.cpp:(.rdata+0x230): undefined reference to `QPainter::staticMetaObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Widgets.a(qwidgettextcontrol.o):qwidgettextcontrol.cpp:(.text+0x90b0): undefined reference to `QInputControl::qt_metacall(QMetaObject::Call, int, void**)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Widgets.a(qwidgettextcontrol.o):qwidgettextcontrol.cpp:(.text+0x90b0): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `QInputControl::qt_metacall(QMetaObject::Call, int, void**)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Widgets.a(qwidgettextcontrol.o):qwidgettextcontrol.cpp:(.text+0x27d): undefined reference to `QInputControl::qt_metacast(char const*)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Widgets.a(qwidgettextcontrol.o):qwidgettextcontrol.cpp:(.text+0x27d): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `QInputControl::qt_metacast(char const*)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Widgets.a(qwidgettextcontrol.o):qwidgettextcontrol.cpp:(.rdata+0x840): undefined reference to `QInputControl::staticMetaObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Widgets.a(qwidgettextcontrol.o):qwidgettextcontrol.cpp:(.rdata$.refptr._ZN13QTextDocument16staticMetaObjectE[.refptr._ZN13QTextDocument16staticMetaObjectE]+0x0): undefined reference to `QTextDocument::staticMetaObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Widgets.a(qwidgettextcontrol.o):qwidgettextcontrol.cpp:(.rdata$.refptr._ZN13QTextDocument15contentsChangedEv[.refptr._ZN13QTextDocument15contentsChangedEv]+0x0): undefined reference to `QTextDocument::contentsChanged()'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Widgets.a(qwidgettextcontrol.o):qwidgettextcontrol.cpp:(.rdata$.refptr._ZTV13QInputControl[.refptr._ZTV13QInputControl]+0x0): undefined reference to `vtable for QInputControl'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Widgets.a(qfontcombobox.o):qfontcombobox.cpp:(.rdata+0x190): undefined reference to `QFontDatabase::staticMetaObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Widgets.a(qabstractspinbox.o):qabstractspinbox.cpp:(.rdata$_ZTV17QSpinBoxValidator[_ZTV17QSpinBoxValidator]+0x10): undefined reference to `QValidator::metaObject() const'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Widgets.a(qabstractspinbox.o):qabstractspinbox.cpp:(.rdata$_ZTV17QSpinBoxValidator[_ZTV17QSpinBoxValidator]+0x18): undefined reference to `QValidator::qt_metacast(char const*)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Widgets.a(qabstractspinbox.o):qabstractspinbox.cpp:(.rdata$_ZTV17QSpinBoxValidator[_ZTV17QSpinBoxValidator]+0x20): undefined reference to `QValidator::qt_metacall(QMetaObject::Call, int, void**)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Widgets.a(qdesktopwidget.o):qdesktopwidget.cpp:(.rdata$.refptr._ZN7QScreen16staticMetaObjectE[.refptr._ZN7QScreen16staticMetaObjectE]+0x0): undefined reference to `QScreen::staticMetaObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Widgets.a(qwidgetlinecontrol.o):qwidgetlinecontrol.cpp:(.text+0x6b80): undefined reference to `QInputControl::qt_metacall(QMetaObject::Call, int, void**)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Widgets.a(qwidgetlinecontrol.o):qwidgetlinecontrol.cpp:(.text+0x6b80): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `QInputControl::qt_metacall(QMetaObject::Call, int, void**)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Widgets.a(qwidgetlinecontrol.o):qwidgetlinecontrol.cpp:(.text+0x5d): undefined reference to `QInputControl::qt_metacast(char const*)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Widgets.a(qwidgetlinecontrol.o):qwidgetlinecontrol.cpp:(.text+0x5d): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `QInputControl::qt_metacast(char const*)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Widgets.a(qwidgetlinecontrol.o):qwidgetlinecontrol.cpp:(.rdata+0x3a0): undefined reference to `QInputControl::staticMetaObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qvalidator.o):qvalidator.cpp:(.text+0x205): undefined reference to `QIntValidator::bottomChanged(int)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qvalidator.o):qvalidator.cpp:(.text+0x205): additional relocation overflows omitted from the output
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qvalidator.o):qvalidator.cpp:(.text+0x217): undefined reference to `QIntValidator::topChanged(int)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qvalidator.o):qvalidator.cpp:(.text+0x6f7): undefined reference to `QDoubleValidator::decimalsChanged(int)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qvalidator.o):qvalidator.cpp:(.text+0x72d): undefined reference to `QDoubleValidator::topChanged(double)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qvalidator.o):qvalidator.cpp:(.text+0x749): undefined reference to `QDoubleValidator::bottomChanged(double)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qvalidator.o):qvalidator.cpp:(.text+0x7d5): undefined reference to `QDoubleValidator::notationChanged(QDoubleValidator::Notation)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qvalidator.o):qvalidator.cpp:(.text+0xa17): undefined reference to `QRegExpValidator::regExpChanged(QRegExp const&)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qvalidator.o):qvalidator.cpp:(.text+0xd53): undefined reference to `QRegularExpressionValidator::regularExpressionChanged(QRegularExpression const&)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qvalidator.o):qvalidator.cpp:(.text+0xd5b): undefined reference to `QValidator::changed()'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qvalidator.o):qvalidator.cpp:(.text+0x116): undefined reference to `QValidator::changed()'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qvalidator.o):qvalidator.cpp:(.text+0x225): undefined reference to `QValidator::changed()'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qvalidator.o):qvalidator.cpp:(.text+0x70b): undefined reference to `QValidator::changed()'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qvalidator.o):qvalidator.cpp:(.text+0x7e2): undefined reference to `QValidator::changed()'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qvalidator.o):qvalidator.cpp:(.text+0xa26): more undefined references to `QValidator::changed()' follow
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qvalidator.o):qvalidator.cpp:(.rdata$.refptr._ZTV27QRegularExpressionValidator[.refptr._ZTV27QRegularExpressionValidator]+0x0): undefined reference to `vtable for QRegularExpressionValidator'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qvalidator.o):qvalidator.cpp:(.rdata$.refptr._ZTV16QRegExpValidator[.refptr._ZTV16QRegExpValidator]+0x0): undefined reference to `vtable for QRegExpValidator'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qvalidator.o):qvalidator.cpp:(.rdata$.refptr._ZTV16QDoubleValidator[.refptr._ZTV16QDoubleValidator]+0x0): undefined reference to `vtable for QDoubleValidator'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qvalidator.o):qvalidator.cpp:(.rdata$.refptr._ZTV13QIntValidator[.refptr._ZTV13QIntValidator]+0x0): undefined reference to `vtable for QIntValidator'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qvalidator.o):qvalidator.cpp:(.rdata$.refptr._ZTV10QValidator[.refptr._ZTV10QValidator]+0x0): undefined reference to `vtable for QValidator'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextlist.o):qtextlist.cpp:(.rdata$.refptr._ZTV9QTextList[.refptr._ZTV9QTextList]+0x0): undefined reference to `vtable for QTextList'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtexttable.o):qtexttable.cpp:(.rdata$.refptr._ZN10QTextTable16staticMetaObjectE[.refptr._ZN10QTextTable16staticMetaObjectE]+0x0): undefined reference to `QTextTable::staticMetaObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtexttable.o):qtexttable.cpp:(.rdata$.refptr._ZTV10QTextTable[.refptr._ZTV10QTextTable]+0x0): undefined reference to `vtable for QTextTable'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextcursor.o):qtextcursor.cpp:(.rdata$.refptr._ZN9QTextList16staticMetaObjectE[.refptr._ZN9QTextList16staticMetaObjectE]+0x0): undefined reference to `QTextList::staticMetaObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocumentlayout.o):qtextdocumentlayout.cpp:(.rdata$.refptr._ZN10QTextFrame16staticMetaObjectE[.refptr._ZN10QTextFrame16staticMetaObjectE]+0x0): undefined reference to `QTextFrame::staticMetaObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x2f8): undefined reference to `QTextDocument::undoAvailable(bool)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x328): undefined reference to `QTextDocument::redoAvailable(bool)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x675): undefined reference to `QTextDocument::modificationChanged(bool)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x11a4): undefined reference to `QTextDocument::documentLayoutChanged()'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x11c5): undefined reference to `QTextDocument::contentsChange(int, int, int)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x182a): undefined reference to `QTextDocument::redoAvailable(bool)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x1907): undefined reference to `QTextDocument::undoAvailable(bool)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x19f2): undefined reference to `QTextDocument::undoAvailable(bool)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x1a97): undefined reference to `QTextDocument::undoAvailable(bool)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x1aa8): undefined reference to `QTextDocument::redoAvailable(bool)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x1cbd): undefined reference to `QTextDocument::undoCommandAdded()'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x1db7): undefined reference to `QTextDocument::redoAvailable(bool)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x1dce): undefined reference to `QTextDocument::undoAvailable(bool)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x5a55): undefined reference to `QTextDocument::cursorPositionChanged(QTextCursor const&)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x5aa2): undefined reference to `QTextDocument::blockCountChanged(int)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x5c1d): undefined reference to `QTextDocument::contentsChange(int, int, int)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x5fe9): undefined reference to `QTextDocument::undoCommandAdded()'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x80b7): undefined reference to `QTextDocument::undoAvailable(bool)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x80f4): undefined reference to `QTextDocument::redoAvailable(bool)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x8c47): undefined reference to `QTextDocument::contentsChange(int, int, int)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x682): undefined reference to `QTextDocument::contentsChanged()'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x6c7): undefined reference to `QTextDocument::modificationChanged(bool)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.text+0x6e2): undefined reference to `QTextDocument::modificationChanged(bool)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument_p.o):qtextdocument_p.cpp:(.rdata$.refptr._ZN15QTextBlockGroup16staticMetaObjectE[.refptr._ZN15QTextBlockGroup16staticMetaObjectE]+0x0): undefined reference to `QTextBlockGroup::staticMetaObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument.o):qtextdocument.cpp:(.text+0x5359): undefined reference to `QTextDocument::baseUrlChanged(QUrl const&)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextdocument.o):qtextdocument.cpp:(.rdata$.refptr._ZTV13QTextDocument[.refptr._ZTV13QTextDocument]+0x0): undefined reference to `vtable for QTextDocument'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextobject.o):qtextobject.cpp:(.rdata$.refptr._ZTV10QTextFrame[.refptr._ZTV10QTextFrame]+0x0): undefined reference to `vtable for QTextFrame'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextobject.o):qtextobject.cpp:(.rdata$.refptr._ZTV15QTextBlockGroup[.refptr._ZTV15QTextBlockGroup]+0x0): undefined reference to `vtable for QTextBlockGroup'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextobject.o):qtextobject.cpp:(.rdata$.refptr._ZTV11QTextObject[.refptr._ZTV11QTextObject]+0x0): undefined reference to `vtable for QTextObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qiconengineplugin.o):qiconengineplugin.cpp:(.rdata$.refptr._ZTV17QIconEnginePlugin[.refptr._ZTV17QIconEnginePlugin]+0x0): undefined reference to `vtable for QIconEnginePlugin'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qicon.o):qicon.cpp:(.rdata$.refptr._ZN17QIconEnginePlugin16staticMetaObjectE[.refptr._ZN17QIconEnginePlugin16staticMetaObjectE]+0x0): undefined reference to `QIconEnginePlugin::staticMetaObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qpicture.o):qpicture.cpp:(.rdata$.refptr._ZN20QPictureFormatPlugin16staticMetaObjectE[.refptr._ZN20QPictureFormatPlugin16staticMetaObjectE]+0x0): undefined reference to `QPictureFormatPlugin::staticMetaObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qimagewriter.o):qimagewriter.cpp:(.rdata$.refptr._ZN14QImageIOPlugin16staticMetaObjectE[.refptr._ZN14QImageIOPlugin16staticMetaObjectE]+0x0): undefined reference to `QImageIOPlugin::staticMetaObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qimageiohandler.o):qimageiohandler.cpp:(.rdata$.refptr._ZTV14QImageIOPlugin[.refptr._ZTV14QImageIOPlugin]+0x0): undefined reference to `vtable for QImageIOPlugin'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qplatformdialoghelper.o):qplatformdialoghelper.cpp:(.rdata$.refptr._ZN21QPlatformDialogHelper16staticMetaObjectE[.refptr._ZN21QPlatformDialogHelper16staticMetaObjectE]+0x0): undefined reference to `QPlatformDialogHelper::staticMetaObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qplatformdialoghelper.o):qplatformdialoghelper.cpp:(.rdata$.refptr._ZTV21QPlatformDialogHelper[.refptr._ZTV21QPlatformDialogHelper]+0x0): undefined reference to `vtable for QPlatformDialogHelper'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtouchdevice.o):qtouchdevice.cpp:(.rdata$.refptr._ZN12QTouchDevice16staticMetaObjectE[.refptr._ZN12QTouchDevice16staticMetaObjectE]+0x0): undefined reference to `QTouchDevice::staticMetaObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qstylehints.o):qstylehints.cpp:(.text+0x8d): undefined reference to `QStyleHints::mouseDoubleClickIntervalChanged(int)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qstylehints.o):qstylehints.cpp:(.text+0x3dd): undefined reference to `QStyleHints::startDragDistanceChanged(int)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qstylehints.o):qstylehints.cpp:(.text+0x59d): undefined reference to `QStyleHints::startDragTimeChanged(int)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qstylehints.o):qstylehints.cpp:(.text+0x8ed): undefined reference to `QStyleHints::keyboardInputIntervalChanged(int)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qstylehints.o):qstylehints.cpp:(.text+0xc43): undefined reference to `QStyleHints::cursorFlashTimeChanged(int)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qstylehints.o):qstylehints.cpp:(.rdata$.refptr._ZTV11QStyleHints[.refptr._ZTV11QStyleHints]+0x0): undefined reference to `vtable for QStyleHints'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qscreen.o):qscreen.cpp:(.rdata$.refptr._ZTV7QScreen[.refptr._ZTV7QScreen]+0x0): undefined reference to `vtable for QScreen'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qkeymapper.o):qkeymapper.cpp:(.rdata$.refptr._ZTV10QKeyMapper[.refptr._ZTV10QKeyMapper]+0x0): undefined reference to `vtable for QKeyMapper'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qguiapplication.o):qguiapplication.cpp:(.text+0xa4c9): undefined reference to `QScreen::orientationChanged(Qt::ScreenOrientation)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qguiapplication.o):qguiapplication.cpp:(.text+0xa715): undefined reference to `QScreen::geometryChanged(QRect const&)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qguiapplication.o):qguiapplication.cpp:(.text+0xa72b): undefined reference to `QScreen::physicalSizeChanged(QSizeF const&)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qguiapplication.o):qguiapplication.cpp:(.text+0xa73f): undefined reference to `QScreen::physicalDotsPerInchChanged(double)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qguiapplication.o):qguiapplication.cpp:(.text+0xa753): undefined reference to `QScreen::logicalDotsPerInchChanged(double)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qguiapplication.o):qguiapplication.cpp:(.text+0xa771): undefined reference to `QScreen::primaryOrientationChanged(Qt::ScreenOrientation)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qguiapplication.o):qguiapplication.cpp:(.text+0xa79b): undefined reference to `QScreen::availableGeometryChanged(QRect const&)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qguiapplication.o):qguiapplication.cpp:(.text+0xa826): undefined reference to `QScreen::virtualGeometryChanged(QRect const&)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qguiapplication.o):qguiapplication.cpp:(.text+0x1438): undefined reference to `QScreen::logicalDotsPerInchChanged(double)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qguiapplication.o):qguiapplication.cpp:(.text+0x151f): undefined reference to `QScreen::refreshRateChanged(double)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qsessionmanager.o):qsessionmanager.cpp:(.rdata$.refptr._ZTV15QSessionManager[.refptr._ZTV15QSessionManager]+0x0): undefined reference to `vtable for QSessionManager'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qtextimagehandler.o):qtextimagehandler.cpp:(.rdata$.refptr._ZTV17QTextImageHandler[.refptr._ZTV17QTextImageHandler]+0x0): undefined reference to `vtable for QTextImageHandler'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qinputdevicemanager.o):qinputdevicemanager.cpp:(.text+0x311): undefined reference to `QInputDeviceManager::cursorPositionChangeRequested(QPoint const&)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qinputdevicemanager.o):qinputdevicemanager.cpp:(.text+0x486): undefined reference to `QInputDeviceManager::deviceListChanged(QInputDeviceManager::DeviceType)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qinputdevicemanager.o):qinputdevicemanager.cpp:(.rdata$.refptr._ZTV19QInputDeviceManager[.refptr._ZTV19QInputDeviceManager]+0x0): undefined reference to `vtable for QInputDeviceManager'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qguivariant.o):qguivariant.cpp:(.rdata$.refptr._ZN11QTextFormat16staticMetaObjectE[.refptr._ZN11QTextFormat16staticMetaObjectE]+0x0): undefined reference to `QTextFormat::staticMetaObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qguivariant.o):qguivariant.cpp:(.rdata$.refptr._ZN8QPalette16staticMetaObjectE[.refptr._ZN8QPalette16staticMetaObjectE]+0x0): undefined reference to `QPalette::staticMetaObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qguivariant.o):qguivariant.cpp:(.rdata$.refptr._ZN5QFont16staticMetaObjectE[.refptr._ZN5QFont16staticMetaObjectE]+0x0): undefined reference to `QFont::staticMetaObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qshapedpixmapdndwindow.o):qshapedpixmapdndwindow.cpp:(.rdata$.refptr._ZTV18QPaintDeviceWindow[.refptr._ZTV18QPaintDeviceWindow]+0x0): undefined reference to `vtable for QPaintDeviceWindow'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(moc_qshapedpixmapdndwindow_p.o):moc_qshapedpixmapdndwindow_p.cpp:(.text+0x6d): undefined reference to `QRasterWindow::qt_metacast(char const*)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(moc_qshapedpixmapdndwindow_p.o):moc_qshapedpixmapdndwindow_p.cpp:(.text+0x81): undefined reference to `QRasterWindow::qt_metacall(QMetaObject::Call, int, void**)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(moc_qshapedpixmapdndwindow_p.o):moc_qshapedpixmapdndwindow_p.cpp:(.rdata+0x0): undefined reference to `QRasterWindow::staticMetaObject'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libQt5Gui.a(qrasterwindow.o):qrasterwindow.cpp:(.rdata$.refptr._ZTV13QRasterWindow[.refptr._ZTV13QRasterWindow]+0x0): undefined reference to `vtable for QRasterWindow'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqwindows.a(qwindowsdrag.o):qwindowsdrag.cpp:(.rdata$_ZTV24QWindowsDragCursorWindow[_ZTV24QWindowsDragCursorWindow]+0x10): undefined reference to `QRasterWindow::metaObject() const'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqwindows.a(qwindowsdrag.o):qwindowsdrag.cpp:(.rdata$_ZTV24QWindowsDragCursorWindow[_ZTV24QWindowsDragCursorWindow]+0x18): undefined reference to `QRasterWindow::qt_metacast(char const*)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqwindows.a(qwindowsdrag.o):qwindowsdrag.cpp:(.rdata$_ZTV24QWindowsDragCursorWindow[_ZTV24QWindowsDragCursorWindow]+0x20): undefined reference to `QRasterWindow::qt_metacall(QMetaObject::Call, int, void**)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqwindows.a(qwindowsdialoghelpers.o):qwindowsdialoghelpers.cpp:(.rdata$_ZTV24QWindowsDialogHelperBaseI25QPlatformFileDialogHelperE[_ZTV24QWindowsDialogHelperBaseI25QPlatformFileDialogHelperE]+0x10): undefined reference to `QPlatformFileDialogHelper::metaObject() const'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqwindows.a(qwindowsdialoghelpers.o):qwindowsdialoghelpers.cpp:(.rdata$_ZTV24QWindowsDialogHelperBaseI25QPlatformFileDialogHelperE[_ZTV24QWindowsDialogHelperBaseI25QPlatformFileDialogHelperE]+0x18): undefined reference to `QPlatformFileDialogHelper::qt_metacast(char const*)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqwindows.a(qwindowsdialoghelpers.o):qwindowsdialoghelpers.cpp:(.rdata$_ZTV24QWindowsDialogHelperBaseI25QPlatformFileDialogHelperE[_ZTV24QWindowsDialogHelperBaseI25QPlatformFileDialogHelperE]+0x20): undefined reference to `QPlatformFileDialogHelper::qt_metacall(QMetaObject::Call, int, void**)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqwindows.a(qwindowsdialoghelpers.o):qwindowsdialoghelpers.cpp:(.rdata$_ZTV24QWindowsFileDialogHelper[_ZTV24QWindowsFileDialogHelper]+0x10): undefined reference to `QPlatformFileDialogHelper::metaObject() const'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqwindows.a(qwindowsdialoghelpers.o):qwindowsdialoghelpers.cpp:(.rdata$_ZTV24QWindowsFileDialogHelper[_ZTV24QWindowsFileDialogHelper]+0x18): undefined reference to `QPlatformFileDialogHelper::qt_metacast(char const*)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqwindows.a(qwindowsdialoghelpers.o):qwindowsdialoghelpers.cpp:(.rdata$_ZTV24QWindowsFileDialogHelper[_ZTV24QWindowsFileDialogHelper]+0x20): undefined reference to `QPlatformFileDialogHelper::qt_metacall(QMetaObject::Call, int, void**)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqwindows.a(qwindowsdialoghelpers.o):qwindowsdialoghelpers.cpp:(.rdata$_ZTV26QWindowsXpFileDialogHelper[_ZTV26QWindowsXpFileDialogHelper]+0x10): undefined reference to `QPlatformFileDialogHelper::metaObject() const'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqwindows.a(qwindowsdialoghelpers.o):qwindowsdialoghelpers.cpp:(.rdata$_ZTV26QWindowsXpFileDialogHelper[_ZTV26QWindowsXpFileDialogHelper]+0x18): undefined reference to `QPlatformFileDialogHelper::qt_metacast(char const*)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqwindows.a(qwindowsdialoghelpers.o):qwindowsdialoghelpers.cpp:(.rdata$_ZTV26QWindowsXpFileDialogHelper[_ZTV26QWindowsXpFileDialogHelper]+0x20): undefined reference to `QPlatformFileDialogHelper::qt_metacall(QMetaObject::Call, int, void**)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqwindows.a(qwindowsdialoghelpers.o):qwindowsdialoghelpers.cpp:(.rdata$.refptr._ZTV25QPlatformFileDialogHelper[.refptr._ZTV25QPlatformFileDialogHelper]+0x0): undefined reference to `vtable for QPlatformFileDialogHelper'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqwindows.a(qwindowsdialoghelpers.o):qwindowsdialoghelpers.cpp:(.rdata$.refptr._ZN25QPlatformFileDialogHelper14filterSelectedERK7QString[.refptr._ZN25QPlatformFileDialogHelper14filterSelectedERK7QString]+0x0): undefined reference to `QPlatformFileDialogHelper::filterSelected(QString const&)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqwindows.a(qwindowsdialoghelpers.o):qwindowsdialoghelpers.cpp:(.rdata$.refptr._ZN25QPlatformFileDialogHelper14currentChangedERK4QUrl[.refptr._ZN25QPlatformFileDialogHelper14currentChangedERK4QUrl]+0x0): undefined reference to `QPlatformFileDialogHelper::currentChanged(QUrl const&)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqwindows.a(qwindowsdialoghelpers.o):qwindowsdialoghelpers.cpp:(.rdata$.refptr._ZN25QPlatformFileDialogHelper16directoryEnteredERK4QUrl[.refptr._ZN25QPlatformFileDialogHelper16directoryEnteredERK4QUrl]+0x0): undefined reference to `QPlatformFileDialogHelper::directoryEntered(QUrl const&)'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqwindows.a(qwindowsdialoghelpers.o):qwindowsdialoghelpers.cpp:(.rdata$.refptr._ZN21QPlatformDialogHelper6rejectEv[.refptr._ZN21QPlatformDialogHelper6rejectEv]+0x0): undefined reference to `QPlatformDialogHelper::reject()'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqwindows.a(qwindowsdialoghelpers.o):qwindowsdialoghelpers.cpp:(.rdata$.refptr._ZN21QPlatformDialogHelper6acceptEv[.refptr._ZN21QPlatformDialogHelper6acceptEv]+0x0): undefined reference to `QPlatformDialogHelper::accept()'
/win64/vlc-3.0.3/contrib/x86_64-w64-mingw32/lib/libqwindows.a(qwindowsdialoghelpers.o):qwindowsdialoghelpers.cpp:(.rdata$.refptr._ZN18QFileDialogOptions16staticMetaObjectE[.refptr._ZN18QFileDialogOptions16staticMetaObjectE]+0x0): undefined reference to `QFileDialogOptions::staticMetaObject'
collect2: error: ld returned 1 exit status
Makefile:16232: recipe for target 'libqt_plugin.la' failed
make[4]: *** [libqt_plugin.la] Error 1
make[4]: Leaving directory '/win64/vlc-3.0.3/win32/modules'
Makefile:26142: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/win64/vlc-3.0.3/win32/modules'
Makefile:11235: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/win64/vlc-3.0.3/win32/modules'
Makefile:1531: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/win64/vlc-3.0.3/win32'
Makefile:1416: recipe for target 'all' failed
make: *** [all] Error 2

newlukas
New Cone
New Cone
Posts: 7
Joined: 06 Aug 2018 13:29

Re: Cross compile for --host=x86_64-w64-mingw32

Postby newlukas » 09 Aug 2018 17:29

I'm not sure what was the cause of the above problems, but yesterday I used docker vlc-debian-win64 and peeked how VLC Jenkins compiles nighly build for 3.0.x and pasted the same build.sh command and it compiled w/o problems.

chouquette
Developer
Developer
Posts: 291
Joined: 15 Apr 2010 00:54

Re: Cross compile for --host=x86_64-w64-mingw32

Postby chouquette » 10 Aug 2018 16:03

I've never seen this error, neither do I have to change something in gcrypt.

How are you building VLC, with which compiler?

Also, the cheat sheet contains an error, if you want to build for 32bits, you need to `docker pull registry.videolan.org:5000/vlc-debian-win32`
For 64 bits: `docker pull registry.videolan.org:5000/vlc-debian-win64`

newlukas
New Cone
New Cone
Posts: 7
Joined: 06 Aug 2018 13:29

Re: Cross compile for --host=x86_64-w64-mingw32

Postby newlukas » 10 Aug 2018 22:31

I compiled on Ubuntu 17 running in virtualbox using docker vlc-debian-win64 and got those errors.
I used docker's default compiler which is probably mingw w64 64bit.
I noticed the error in the cheatsheet.
Nevertheless now everything compiles and runs on Win10, so it's time for me to write new audio decoder module.
Cheers.

Lyra532
New Cone
New Cone
Posts: 4
Joined: 13 Aug 2018 13:20

Re: Cross compile for --host=x86_64-w64-mingw32

Postby Lyra532 » 13 Aug 2018 13:31

Hi newlukas, can you please specify your steps?
Did you follow the cheat sheet above?
each time I try to run the

docker pull registry.videolan.org:5000/vlc-debian-win64

command, I get an error:

docker: Error response from daemon: Get https://registry.videolan.org:5000/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
See 'docker run --help'.

I tried to change my DNS server as was recommended on some places but it didn't help
(I run ubuntu 18 in virtualbox)

thanks ahead

newlukas
New Cone
New Cone
Posts: 7
Joined: 06 Aug 2018 13:29

Re: Cross compile for --host=x86_64-w64-mingw32

Postby newlukas » 15 Aug 2018 21:57

On Ubuntu 17 I installed docker client using:
sudo apt-get install docker.io
then get the docker instance using:
sudo docker pull registry.videolan.org:5000/vlc-debian-win64

Lyra532
New Cone
New Cone
Posts: 4
Joined: 13 Aug 2018 13:20

Re: Cross compile for --host=x86_64-w64-mingw32

Postby Lyra532 » 19 Aug 2018 09:27

thank you for your answer, I am now able to build vlc 4 from git,
but when I try to build vlc3.0.3 (inside a vlc-debian-win64 container) I get the gcrypt error:

x86_64-w64-mingw32-windres: versioninfo.rc.in:21: syntax error
Makefile:1224: recipe for target 'versioninfo.lo' failed
make[2]: *** [versioninfo.lo] Error 1
make[2]: Leaving directory '/vlc-3.0.3/contrib/win32/gcrypt/src'
Makefile:487: recipe for target 'install-recursive' failed
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory '/vlc-3.0.3/contrib/win32/gcrypt'
../../contrib/src/gcrypt/rules.mak:72: recipe for target '.gcrypt' failed
make: *** [.gcrypt] Error 2

how were you able to overcome this?

Lyra532
New Cone
New Cone
Posts: 4
Joined: 13 Aug 2018 13:20

Re: Cross compile for --host=x86_64-w64-mingw32

Postby Lyra532 » 21 Aug 2018 11:23

if anyone is interested the answer to solve this problem is described here:

https://bugs.debian.org/cgi-bin/bugrepo ... bug=814954

you need to modify the configure.ac file inside gcrypt directory

- m4_esyscmd([git rev-parse --short HEAD | tr -d '\n\r']))
+ m4_esyscmd([printf %x $(wc -l < debian/changelog)]))

so it won't be dependent on git

chouquette
Developer
Developer
Posts: 291
Joined: 15 Apr 2010 00:54

Re: Cross compile for --host=x86_64-w64-mingw32

Postby chouquette » 21 Aug 2018 14:44

I'm surprised we never hit this issue :| Maybe this is only when using a more recent version than the one we require in the contribs?

In any case, thanks for reporting back and for providing the patch!

Lyra532
New Cone
New Cone
Posts: 4
Joined: 13 Aug 2018 13:20

Re: Cross compile for --host=x86_64-w64-mingw32

Postby Lyra532 » 23 Aug 2018 09:15

I think it only happens when you build from a tarball rather than from git hub

newlukas
New Cone
New Cone
Posts: 7
Joined: 06 Aug 2018 13:29

Re: Cross compile for --host=x86_64-w64-mingw32

Postby newlukas » 27 Aug 2018 14:59

Yep, it happens when compiling from tarball (http://get.videolan.org/vlc/3.0.3/vlc-3.0.3.tar.xz)
Files in tarball differ from the ones on git (git://git.videolan.org/vlc/vlc-3.0.git), some files are stripped e.g. build.sh.
When I was compiling from tarball I was able to fix problem with gcrypt (as I wrote in my previous post) but then I faced another few problems so I gave up.
It's a pitty that you download the official source code for current release and can't compile it :-( .

newlukas
New Cone
New Cone
Posts: 7
Joined: 06 Aug 2018 13:29

Re: Cross compile for --host=x86_64-w64-mingw32

Postby newlukas » 07 Sep 2018 08:56

Version 3.0.4 (http://get.videolan.org/vlc/3.0.4/vlc-3.0.4.tar.xz) still doesn't compile.

aquiintac
New Cone
New Cone
Posts: 1
Joined: 24 Dec 2019 11:31

Re: Cross compile for --host=x86_64-w64-mingw32

Postby aquiintac » 24 Dec 2019 11:38

hi newlukas, did you ever got around with compiling from tarball? i'm using vlc-3.0.8.tar.xz.

i was able to fix the gcrypt by following the instructions above. when running "make", i had a lot of warnings but it continued until the end.
i got an error when running make package-win32.

mkdir -p ./vlc-3.0.8/lua/
cp -r /win64/vlc-3.0.8/win32/_win32/lib/vlc/lua/* ./vlc-3.0.8/lua/
cp -r /win64/vlc-3.0.8/win32/_win32/share/vlc/lua/* ./vlc-3.0.8/lua/
rm -fr ./vlc-3.0.8/skins
cp -r /win64/vlc-3.0.8/win32/_win32/share/vlc/skins2 ./vlc-3.0.8/skins
cp -r ../extras/package/win32/../../../share/hrtfs ./vlc-3.0.8/
cp: cannot stat '../extras/package/win32/../../../share/hrtfs': No such file or directory
Makefile:2410: recipe for target 'package-win-common' failed
make: *** [package-win-common] Error 1


Return to “Development around libVLC”

Who is online

Users browsing this forum: No registered users and 24 guests