Page 1 of 1

cross-compiling for win32: libfaad, undefined reference to `_imp____acrt_iob_func

Posted: 16 Apr 2019 13:03
by mangup
Hi,

I've tried to build vlc (2.2) for windows according to https://wiki.videolan.org/Win32Compile/ instruction.
And on "$ ../extras/package/win32/configure.sh --host=HOST-TRIPLET --build=x86_64-pc-linux-gnu" step
I've faced with "configure: error: Cannot find libfaad library..."
The symptoms are the same as described at https://forum.videolan.org/viewtopic.php?t=144321 post.

Does the problem has better solution, than described there?

Re: cross-compiling for win32: libfaad, undefined reference to `_imp____acrt_iob_func

Posted: 16 Apr 2019 16:47
by unidan
Hi, why are you trying to build the 2.2 version ?

Re: cross-compiling for win32: libfaad, undefined reference to `_imp____acrt_iob_func

Posted: 16 Apr 2019 17:19
by mangup
Because of "At the time of writing (late 2016), the prebuilt libraries work with VLC 2.2.x only." phrase on https://wiki.videolan.org/Win32Compile/ page.
Now I'm manually building 3rd party libraries for VLC master. But also with troubles:

meson.build:25:0: ERROR: Meson version is 0.45.1 but project requires >= 0.47.0.

Re: cross-compiling for win32: libfaad, undefined reference to `_imp____acrt_iob_func

Posted: 16 Apr 2019 17:56
by chubinou
Hi,

you can build required build tool by:

cd extras/tools
./bootstrap
make

Re: cross-compiling for win32: libfaad, undefined reference to `_imp____acrt_iob_func

Posted: 16 Apr 2019 19:45
by mangup
yep. thanks.
And what about Qt? :

Code: Select all

configure: error: Requested 'Qt5Core >= 5.11.0' but version of Qt5 Core is 5.6.2. If you want to build VLC without GUI, pass --disable-qt.
I need somehow upgrade tool-chain's Qt ?
How to do it?

Re: cross-compiling for win32: libfaad, undefined reference to `_imp____acrt_iob_func

Posted: 17 Apr 2019 09:49
by chubinou
I think the Qt recipe from the contrib doesn't compile for linux. What I personally do is download and install Qt from their installer (https://www.qt.io/download-qt-installer), and configure vlc with

../configure PKG_CONFIG_PATH=/home/pierre/Qt/5.11.3/gcc_64/lib/pkgconfig

Re: cross-compiling for win32: libfaad, undefined reference to `_imp____acrt_iob_func

Posted: 17 Apr 2019 12:16
by mangup
I need windows Qt binaries - am I right? How to install windows qt installer on linux? :)
Because I still have "configure: error: Requested 'Qt5Core >= 5.11.0' but version of Qt5 Core is 5.6.2. If you want to build VLC without GUI, pass --disable-qt." answer for command "../extras/package/win32/configure.sh PKG_CONFIG_PATH=/home/<path-to>/Qt/5.12.2/gcc_64/lib/pkgconfig --host=i686-w64-mingw32 --build=x86_64-pc-linux-gnu"
with my hand made installed Qt5.12.2

Re: cross-compiling for win32: libfaad, undefined reference to `_imp____acrt_iob_func

Posted: 17 Apr 2019 12:34
by chubinou
I forgot you were compiling for windows, in that case you should use the qt version provided in the contribs. You just have to manually build the contribs as explained in wiki page you mentioned.

Re: cross-compiling for win32: libfaad, undefined reference to `_imp____acrt_iob_func

Posted: 17 Apr 2019 12:39
by chubinou
Now it looks like your (mingw?) environment has a Qt version installed in it. This may interferes with the ones provided by the contribs.

To ease the setup of compilation environment you can use the docker build environment provided by videolan

https://code.videolan.org/videolan/docker-images
- vlc-debian-win32 for gcc 32bit
- vlc-debian-win64 for gcc 64bit
- vlc-debian-llvm-mingw for clang 32/64 bits

Re: cross-compiling for win32: libfaad, undefined reference to `_imp____acrt_iob_func

Posted: 17 Apr 2019 12:48
by mangup
I'm already in progress of docker instruction. But faced with known "dvdread error" on step 20: "../extras/package/win32/configure.sh --host=x86_64-w64-mingw32 –build=x86_64-pc-linux-gnu"
Now it is building by Jean-Baptiste Kempf's advise "just use extras/package/win32/build.sh -a i686".
UPD: failed:
make[2]: Entering directory '/win64/vlc/contrib/contrib-win32/vncclient'
/bin/mkdir -p '/win64/vlc/contrib/i686-w64-mingw32/include/rfb'
/bin/mkdir -p '/win64/vlc/contrib/i686-w64-mingw32/lib/pkgconfig'
/usr/bin/install -c -m 644 rfb/rfb.h rfb/rfbconfig.h rfb/rfbint.h rfb/rfbproto.h rfb/keysym.h rfb/rfbregion.h rfb/rfbclient.h '/win64/vlc/contrib/i686-w64-mingw32/include/rfb'
/usr/bin/install -c -m 644 libvncserver.pc libvncclient.pc '/win64/vlc/contrib/i686-w64-mingw32/lib/pkgconfig'
make[2]: Leaving directory '/win64/vlc/contrib/contrib-win32/vncclient'
make[1]: Leaving directory '/win64/vlc/contrib/contrib-win32/vncclient'
rm /win64/vlc/contrib/i686-w64-mingw32/lib/pkgconfig/libvncserver.pc
touch .vncclient
make: Target 'all' not remade because of errors.
+ make -j1
GEN d3d11.h
/bin/sh: 2: i686-w64-mingw32-widl: not found
GEN d3d11_1.h
/bin/sh: 2: i686-w64-mingw32-widl: not found
GEN d3d11_2.h
/bin/sh: 2: i686-w64-mingw32-widl: not found
GEN d3d11_3.h
/bin/sh: 2: i686-w64-mingw32-widl: not found
GEN dxgicommon.h
/bin/sh: 2: i686-w64-mingw32-widl: not found
GEN dxgitype.h
/bin/sh: 2: i686-w64-mingw32-widl: not found
GEN dxgiformat.h
/bin/sh: 2: i686-w64-mingw32-widl: not found
GEN dxgidebug.h
/bin/sh: 2: i686-w64-mingw32-widl: not found
GEN dxgi.h
/bin/sh: 2: i686-w64-mingw32-widl: not found
GEN dxgi1_2.h
/bin/sh: 2: i686-w64-mingw32-widl: not found
GEN dxgi1_3.h
/bin/sh: 2: i686-w64-mingw32-widl: not found
GEN dxgi1_4.h
/bin/sh: 2: i686-w64-mingw32-widl: not found
GEN dxgi1_5.h
/bin/sh: 2: i686-w64-mingw32-widl: not found
GEN dxgi1_6.h
/bin/sh: 2: i686-w64-mingw32-widl: not found
../../contrib/src/wine-headers/rules.mak:43: recipe for target '.wine-headers' failed
make: *** [.wine-headers] Error 127

Re: cross-compiling for win32: libfaad, undefined reference to `_imp____acrt_iob_func

Posted: 17 Apr 2019 13:13
by mangup
Returning to dvdread error:
Also, if you have a problem here (such as an error about Library dvdread), see the Talk page
- I do not see the solution on this page. Who knows it?