Page 1 of 1

Something wrong with compilation - protoc

Posted: 21 May 2018 06:45
by lanshi
Hello guys! I just can't compile VLC3.0 for long time.

Now i have fatal error: "google/protobuf/generated_message_table_driven.h
no such file or directory. Firstly i add some needed file to contrib/x86_64-w64-mingw32/include/google/protofub/, but that doesn't help, revert that i do. After reading forums i decide to update protoc from 2.6.1 to liprotoc 3.5.1, and doesn't help too.

I follow the guide from https://wiki.videolan.org/Win32Compile/ and something from this forum:

Pull the VideoLAN Docker container and run it in interactive mode with bash:

sudo docker pull registry.videolan.org:5000/vlc-debian-win64
sudo docker run -v ~/docker:/root/shared -it registry.videolan.org:5000/vlc-debian-win64 /bin/bash

cd /root/shared
sudo git clone https://git.videolan.org/git/vlc/vlc-3.0.git vlc30

export PATH="/opt/gcc-x86_64-w64-mingw32/bin:$PATH"
cd vlc30/contrib

sudo apt-get install gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64-tools

sudo apt-get install lua5.2 libtool automake autoconf autopoint make gettext pkg-config qt4-dev-tools qt5-default git subversion cvs wine64-development-tools zip p7zip p7zip-full nsis bzip2 yasm ragel ant default-jdk protobuf-compiler dos2unix libvorbis-dev libogg-dev libtheora-dev speex libspeex-dev flac libflac-dev x264 libx264-dev a52-0.7.4 liba52-0.7.4-dev mpeg2dec libmpeg2-4-dev faad libfaad-dev faac libfaac-dev lame libmp3lame-dev ffmpeg libavdevice-dev libmad0 libmad0-dev libschroedinger-dev libdca-dev twolame libtwolame-dev libmpcdec-dev libvorbisidec1 libvorbisidec-dev libass-dev libebml-dev libmatroska-dev libdvbpsi-dev libmodplug1 libmodplug-dev

sudo apt-get install libshout3-dev libdvdread4 libdvdnav4 libdvdnav-dev livemedia-utils liblivemedia-dev libcddb2 libcddb2-dev libcdio-dev libcdio-utils vcdimager libvcdinfo0 libvcdinfo-dev libgpg-error0 libgpg-error-dev libgcrypt11-dev gnutls-bin libgnutls-dev libdap-bin libdap-dev libxml2 libxml2-dev libpng12-0 libpng12-dev libjpeg8 libsdl1.2-dev libsdl-image1.2 libsdl-image1.2-dev libc-bin gettext libfreetype6 libfreetype6-dev libfribidi-dev libfribidi0 zlib1g zlib1g-dev libtag1-dev libcaca0 libcaca-dev caca-utils libqt4-dev libportaudio2 libupnp-dev libexpat1 libexpat1-dev yasm libxcb-xv0 libxcb-xv0-dev libx11-xcb1 libx11-xcb-dev libswscale-dev libxcb-composite0-dev

sudo apt-get install ogmrip-dirac libwine-development libass5 libebml4v5 libmatroska6v5 libdvbpsi10 libshout3 libcdio13 libgcrypt20 libgnutls30 libdap17v5 libtiff5 libqtcore4 libportaudio2 libupnp6 gperf libtool-bin bison flex

newest version should be for cmake, protobuf, protoc (don't forget to export $PATH)
export PATH=/opt/cmake/bin:$PATH

don't have this sh*t: dirac libdirac-dev liboil-dev

cp /usr/include/wine-development/ wine -rf

Fetch prebuilt contribs and make them usable: (To find prebuild contribs, check the nightlies)
https://nightlies.videolan.org/build/win64/last-3/

wget https://nightlies.videolan.org/build/wi ... 16.tar.bz2
tar xf vlc-contrib-x86_64-w64-mingw32-20180516.tar.bz2
cd x86_64-w64-mingw32
../src/change_prefix.sh
cd ..

If you're using the nightlies, also build the lua compiler:

mkdir contrib-extras && cd contrib-extras
../bootstrap
make .luac
cd ../bin && mv x86_64-linux-gnu-luac x86_64-w64-mingw32-luac
cd ..

mkdir -p win64 && cd win64
../bootstrap --host=x86_64-w64-mingw32
make fetch
nano ../src/d3d9/rules.mak [manually change IDL_INC_PATH from wine to wine-development]
nano ../src/d3d11/rules.mak [manually change IDL_INC_PATH from wine to wine-development]
make [4 hours of death]
rm -f ../x86_64-w64-mingw32/bin/moc ../x86_64-w64-mingw32/bin/uic ../x86_64-w64-mingw32/bin/rcc
ln -sf x86_64-w64-mingw32 ../i686-w64-mingw32
cd ../..

cd extras/tools
./bootstrap
make
export PATH="/root/shared/vlc30/extras/tools/build/bin:$PATH"
cd ../..

./bootstrap
mkdir -p build && cd build
export PKG_CONFIG_LIBDIR=$HOME/vlc/contrib/x86_64-w64-mingw32/lib/pkgconfig
../extras/package/win32/configure.sh --disable-nls --host="x86_64-w64-mingw32"
make

in the same issue with "wrl/client.h",need 6 files, which need copy to contrib/x86_64-w64-mingw32/include/wrl/ from https://sourceforge.net/p/mingw-w64/min ... clude/wrl/
1. v5.x/mingw-w64-headers/include/wrl/client.h
2. v5.x/mingw-w64-headers/include/wrl/internal.h
3. v5.x/mingw-w64-headers/include/roapi.h
4. v5.x/mingw-w64-headers/include/dwrite.h
5. v5.x/mingw-w64-headers/include/dwrite_1.h
6. v5.x/mingw-w64-headers/include/dwrite_2.h

make package-win64-exe

Re: Something wrong with compilation - protoc

Posted: 21 May 2018 11:31
by mfkl
Are you compiling from a Docker container?