Ubuntu 10.04 编译和修改xvid1.3.1


编译
首先从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.bkjia.com@bkjia:~/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.bkjia.com@bkjia:~/xvidcore/build/generic$ cd \=build/
www.bkjia.com@bkjia:~/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一次,搞定!

相关内容