编译
首先从xvid的官方下载xvid源码http://www.xvid.org/。
将源码解压到home目录下:
tar zxvf xvidcore-1.3.1.tar.gz
进入解压后的目录,可以看到一个build目录
$cd /build/generic
直接make就可以,xvid后自动configure
$make
make后生成:
www.linuxidc.com@linuxidc:~/xvidcore/build/generic$ make
L: libxvidcore.a
L: libxvidcore.so.4.3
—————————————————————
Xvid has been successfully built.
* Binaries are currently located in the ‘=build’ directory
* To install them on your system, you can run ‘# make install’
as root.
—————————————————————
系统会提示生成库文件存放在=build目录下
进入=build目录:
www.linuxidc.com@linuxidc:~/xvidcore/build/generic$ cd \=build/
www.linuxidc.com@linuxidc:~/xvidcore/build/generic/=build$ ls
bitstream libxvidcore.a motion quant xvid.h
dct libxvidcore.def my_sh.sh utils xvid.o
decoder.o libxvidcore.ld my_sh.sh~ xvid_de
encoder.o libxvidcore.so.4.3 plugins xvid_decraw.c
image mobile_cif.mp4 prediction xvid_decraw.c~
可以看到生成的库文件。
注意,如果要实装刚才生成的库,用两种办法:
(1)采用直接make,再把生成的lib文件和头文件分别手动拷贝到/usr/lib和/usr/include中
(2)首先./configure –prefix=/usr, 然后再make, make install, 可以实现自动安装库文件。
导出和修改
由于本人在解码时想从解码过程中获取mv信息,所以要手动修改源代码,但在修改后导出全局数组上出现了一个小问题。
全局数组在静态库中能正常地导出,但在动态库中则不能,编译的时候就会报错,这个问题用了我一点时间。
解决办法:
修改build/generic目录下的libxvidcore.ld, 在其中加入要导出的全局数组或函数。再重新make一次,搞定!