1。Linux下编译X264:
其实在windows下使用vc已经编译过了,不过听到有人说在linux下编好了,我也就尝试做一下,况且x264源代码的makefile已经做好了,我只需要做的就是把文件copy一下,然后make 一下就可以了。
首先把x264-060805复制到目录下。
1、I64,uI64的错误,if (delta > 32767I64 || delta < -32768I64),这是lsp添加的,把注释部分换一下,去除I64的使用
2、nasm。我用的ubuntu没有安装nasm,所以一些汇编无法通过,直接安装一下就可以了ftp://ftp.zytor.com/pub/nasm/snapshots/
然后在x264-060805下make,就编译好了可执行文件x264,有600多K,比vc下的要大,估计是添加的模块不同,或者编译方法不同。暂且不管
简单测试一下,./x264 -o test.264 file.yuv 176x144 得到了.264文件,用vlc播放,可以播放。暂时证明是编译正确吧。
2。最近移植x264的过程。
旧的是没有--disable-asm和--cross-compile这两个configure的支持的(前者是对x86的汇编优化,交叉编译的时候当然不要的,后者是交叉编译环境设置)。其实和我之前的移植过程差不多,这里写个步骤:
我这里打开了动态链接和debug。前者可以生成libx264.so,后者可以在你调程序用gdb的时候step into库函数里。
# 这里去掉-DHAVE_MMXEXT -DHAVE_SSE2 -DARCH_X86
CFLAGS=-Wall -I. -O4 -ffast-math -D__X264__ -DHAVE_MALLOC_H -DSYS_LINUX -DHAVE_PTHREAD -s -fomit-frame-pointer
LDFLAGS= -lm -lpthread -s
AS=nasm
ASFLAGS=-O2 -f elf
VFW=no
GTK=no
EXE=
VIS=no
HAVE_GETOPT_LONG=1
DEVNULL=/dev/null
CONFIGURE_ARGS= '--enable-shared' '--prefix=/home/peter/workspace'
SONAME=libx264.so.49
default
: $(SONAME)