红联Linux门户
Linux帮助

Ubuntu下编译交叉编译Windows下的x264

发布时间:2017-01-14 09:56:12来源:linux网站作者:XellossRyan
由于有一项临时需求,需要手动为windows平台编译一个修改过的x264的exe版本,于是在windows当中使用mingw来编译x264,但是编译总是出错。
于是选择了在Ubuntu 下使用Mingw来交叉编译windows使用的x264.exe执行程序。
本人使用的是Ubuntu 16.04,由于系统当中的编译链并不是windows可用的编译链,需要手动安装MingW交叉编译工具。
 
1、首先需要运行命令来安装MinGW
sudo apt-get install mingw-w64  
在这个步骤之前,最好在系统当中已经存在默认的编译工具链,运行
sudo apt-get install build-essential
来安装linux系统默认编译链。
 
2、下载(http://www.videolan.org/developers/x264.html)并解压x264源码到 ~/x264
 
3、在终端当中cd到~/x264目录,并且使用MinGW 来为其配置交叉编译工具链
./configure --host=x86_64-w64-mingw32 --cross-prefix=/usr/bin/x86_64-w64-mingw32- --sysroot=/usr/i686-w64-mingw32   
解释:因为我要编译的64位系统下的x264.exe, 所以我使用的MinGW工具链主机名为:
x86_64-w64-mingw32
编译工具链所在的目录以及gcc文件前缀为:
/usr/bin/x86_64-w64-mingw32-
该编译链的系统根目录(也就是标准库的include和lib目录所在路径)为:
/usr/x86_64-w64-mingw32  
回车以后,控制台会打印如下信息:
~/x264$ ./configure --host=x86_64-w64-mingw32 --cross-prefix=/usr/bin/x86_64-w64-mingw32- --sysroot=/usr/x86_64-w64-mingw32  
platform:  X86_64  
byte order:little-endian  
system:WINDOWS  
cli:   yes  
libx264:   internal  
shared:no  
static:no  
asm:   yes  
interlaced:yes  
avs:   avisynth  
lavf:  no  
ffms:  no  
mp4:   no  
gpl:   yes  
thread:win32  
opencl:yes  
filters:   crop select_every   
lto:   no  
debug: no  
gprof: no  
strip: no  
PIC:   no  
bit depth: 8  
chroma format: all 
You can run 'make' or 'make fprofiled' now.
说明我们此时已经配置好了用于编译windows版的x264了
 
4、接下来,最后一步只要运行一下我们的构建命令
make
便可以万事大吉了。如果需要静态编译exe, 在congfigure命令执行可以加入开关--enable-static。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/27790.html