編譯
首先從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一次,搞定!