背景
因为要编译另外一个应用需要用到libVLC, 所以这里记录一下如何来进行编译。中间经历了无数的失败,终于踩出了一条可行的道路。
准备环境
首先得到一个Debian jessie
64bit的环境。可以用虚拟机,我在这里用的是debootstrap构建rootfs再chroot来使用的环境。接下来先启用ia32架构的库
1 2 3 |
dpkg --add-architecture i386 apt-get update |
接下来安装工具链及工具
1 2 3 4 5 6 |
apt-get install gcc-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64-tools apt-get install lua5.2:i386 libtool automake autoconf autopoint make gettext pkg-config apt-get install qt4-dev-tools qt5-default git subversion cmake cvs apt-get install wine64-development-tools libwine-dev zip p7zip nsis bzip2 apt-get install yasm ragel ant default-jdk protobuf-compiler dos2unix |
获取代码
下载并解压代码
1 2 3 4 |
cd $HOME wget https://download.videolan.org/pub/videolan/vlc/2.2.1/vlc-2.2.1.tar.xz tar -xf vlc-2.2.1.tar.gz |
准备VLC依赖库
我们使用VLC预先编译的依赖库减少编译时间
1 2 3 4 5 6 7 8 |
cd vlc-2.2.1 mkdir -p contrib/win32 cd contrib/win32 wget https://get.videolan.org/contrib/i686-w64-mingw32/vlc-contrib-i686-w64-mingw32-20151104.tar.bz2 mv vlc-contrib-i686-w64-mingw32-20151104.tar.bz2 vlc-contrib-i686-w64-mingw32-latest.tar.bz2 ../bootstrap --host=i686-w64-mingw32 make prebuilt |
配置代码
接下来进行标准的配置
1 2 3 4 5 |
cd ../.. mkdir win32 && cd win32 export PKG_CONFIG_LIBDIR=$HOME/vlc-2.2.1/contrib/i686-w64-mingw32/lib/pkgconfig ../extras/package/win32/configure.sh --host=i686-w64-mingw32 |
编译
接下来进行编译
1 2 |
make -j $(nproc) |
打包
最后打包,可以在win32
目录下的vlc-2.2.1
目录中直接得到libVLC的头文件和库文件
1 2 |
make package-win-common |