在linux上编译windows 32/64 上运行的vlc

时间:2023-02-10 15:57:18

Windows-32位

1,GCC版本信息
#gcc -v
Using built-in specs.
Target: i686-linux-gnu
gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu5)

 

1 安装vlc依赖的库 

sudo apt-get build-dep vlc 

 

2,安装必须的工具包否则后面会出错
#apt-get install autoconf automake libtool git subversion

 

 

3,安装win32下编译工具


sudo apt-get install mingw32 

#apt-get install gcc-mingw32

#apt-get install mingw32-binutils

如果安装不了,手动下载第三方交叉工具下载:http://download.videolan.org/pub/

 

4.安装最新的VLC
#cd /home/git_work
#git clone git://git.videolan.org/vlc.git

5.进入vlc目录,进入第三方包目录
#cd vlc
#mkdir -p contrib/win32
#cd contrib/win32


6.配置并编译第三方包



#../bootstrap --host=i586-mingw32msvc  指定交叉编译工具
 Guessing build system... i686-linux-gnu
 Creating configuration file... config.mak
 Bootstrap completed.

 Run "make" to start compilation.
 Other targets:
  * make install      same as "make"
  * make prebuilt     fetch and install prebuilt binaries
  * make list         list packages
  * make fetch        fetch required source tarballs
  * make fetch-all    fetch all source tarballs
  * make distclean    clean everything and undo bootstrap
  * makemostlyclean  clean everything exceptsource tarballs
  * make clean        clean everything
  * make package      prepare prebuilt packages

#make prebuilt
 Fixingup ./lib/libdvdread.la
 Fixingup ./lib/libfreetype.la
 Fixingup ./lib/libzvbi.la
 Fixingup ./lib/libresid-builder.la
 Fixingup ./lib/libschroedinger-1.0.la
 Fixingup ./lib/libFLAC.la
 Fixingup ./change_prefix.sh
 
7.回到vlc根目录
#cd ../..
#./bootstrap
 + rm -fpo/Makevars.template ABOUT-NLS
 + echo
 + mv -fINSTALL.git INSTALL
 + rm -f stamp-h*
 + set +x
 Successfullybootstrapped

8.配置makefile
#mkdir win32 && cd win32
#../extras/package/win32/configure.sh --host=i586-mingw32msvc

checking forLUA... no
configure:WARNING: No package 'lua5.1' found, trying lua >= 5.1 instead
checking forLUA... yes
checking forluac... no
出错就安装
#apt-get install lua5.1

#../extras/package/win32/configure.sh --host=i586-mingw32msvc
 libvlcconfiguration
 --------------------
 version               : 2.1.0-git
 system                : mingw32
 architecture          : i586 mmx sse sse2
 optimizations         : yes
 vlcaliases            : cvlc rvlc qvlc svlc
 Tobuild vlc and its plugins, type `./compile' or `make'.

9.编译
#make

10.打包
#make package-win32-zip

11.在vlc/win32目录下可以找到vlc-2.1.0-git-win32.zip文件,复制到windows目录下,解压缩即可运行

 


Windows-64位

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

环境 Ubuntu12.04


1. 安装编绎器

  1. sudo apt-get install binutils-mingw-w64-i686 gcc-mingw-w64-i686 g++-mingw-w64-i686 

下载

ftp://ftp.jp.debian.org/debian/pool/main/m/mingw-w64

- You must use mingw-w64 3.0 or later (Please note that the binary size is about 7M)
- http://packages.debian.org/experimental ... 4-i686-dev

 

 

改一下名字,不然装不了

     mv mingw-w64-i686-dev_3.0~svn5408-1_all.deb  mingw-w64-i686-dev_3.deb

 

  1. sudo dpkg -i mingw-w64-i686-dev_3.deb

 

2.安装相关工具

  1. sudo apt-get install ua5.1 libtool automake autoconf autopoint make gettext pkg-config git subversion cmake cvs zip p7zip-full nsis bzip2 

3.下源码

  1. git clone git://git.videolan.org/vlc.git vlc 

4.准备第三方库

  1. cd vlc 
  2. mkdir -p contrib/win32 
  3. cd contrib/win32 
  4. ../bootstrap --host=i686-w64-mingw32 
  5. make prebuilt 

会把依赖的 第三方库下载下来.

5.Bootstrap

回到vlc目录下

[html] view plaincopyprint?
  1. cd - 
  2. ./bootstrap 

6.Configure

[html] view plaincopyprint?
  1. mkdir win32 && cd win32 
  2. ../configure --host=i686-w64-mingw32  
这里你能加上自己的配置[html] view plaincopyprint?
  1. ../configure --help 
出现下面打印,配置成功
libvlc configuration
--------------------
version               : 2.1.0-git
system                : mingw32
architecture          : i686 mmx sse sse2
optimizations         : yes
vlc aliases           : cvlc rvlc qvlc svlc

To build vlc and its plugins, type `make', or `./compile' if you like nice colors.

7.开编

[html] view plaincopyprint?
  1. make  
开始编绎,漫长等待.
ok 打包 [html] view plaincopyprint?
  1. make package-win32-zip 

在linux上编译windows 32/64 上运行的vlc


安装之后 完美运行 在linux上编译windows 32/64 上运行的vlc

8.总结

qt的版本太旧,编译时会有问题。所以需要从新下载编译qt。

vlc官方文档用的 i586-mingw32msvc 这里要换成 i686-w64-mingw32 http://wiki.videolan.org/Win32Compile#Obtaining_the_toolchain