Skip to content
Anime4000 edited this page Jun 27, 2017 · 13 revisions

Compiling in Linux can be very hard, especially compile using shared library.

Getting started

In this tutorial, I using Ubuntu 16.04

Tool we need

  • Latest mono-complete (Allow IFME to compile)
  • Git (clone this project)
  • LibBoost C/C++ (mkvtoolnix)
  • etc..

Download and Install

Development Tools

sudo apt install build-essential software-properties-common autoconf git libssl-dev zlib1g-dev clang

By default Ubuntu ship with older version of GCC, we need to update to the latest version

sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
sudo apt-get update
sudo apt-get install gcc-7 g++-7
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 60 --slave /usr/bin/g++ g++ /usr/bin/g++-7
sudo update-alternatives --config gcc

Mono Runtime

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb http://download.mono-project.com/repo/ubuntu xenial main" | sudo tee /etc/apt/sources.list.d/mono-official.list
sudo apt-get update
sudo apt install mono-complete

MP4Box

wget https://github.com/gpac/gpac/archive/v0.7.0.tar.gz
tar -xvf v0.7.0.tar.gz
cd gpac-0.7.0
./configure --enable-static-bin --static-mp4box --static-modules
make
cd ..

Mkvtoolnix

Compiling mkvtoolnix static can be very hard, try this.

Get development files

sudo apt install ruby rake libogg-dev libvorbis-dev zlib1g-dev libxslt-dev xsltproc docbook-xsl qtbase5-dev libflac-dev liblzo2-dev libbz2-dev libmagic-dev po4a libboost-filesystem-dev libboost-system-dev libboost-regex-dev libboost-date-time-dev

Get LibBoost

wget https://dl.bintray.com/boostorg/release/1.64.0/source/boost_1_64_0.tar.gz
cd boost_1_64_0
./bootstrap.sh --prefix=/usr/local
sudo ./b2 --without-mpi variant=release link=static threading=multi install
cd ..

Compile Mkvtoolnix, static!

git clone https://github.com/mbunkus/mkvtoolnix
cd mkvtoolnix
git checkout release-13.0.0
git submodule init
git submodule update
./autogen.sh
./configure --enable-static --enable-static-qt --enable-magic
rake

get rekt