mplayer的编译过程

来源:互联网 发布:软件二次开发注意事项 编辑:程序博客网 时间:2024/05/18 01:57

 

1. 下载MPlayer-1.0rc2.tar.bz2

2. 配置configure --disable-ivtv

3. sudo apt-get install libxv-dev

4. make

5.

 

http://hi.baidu.com/yibite/blog/item/4cad81fb32ddb6839e5146a3.html

mplayer编译过程中出现ivtv错误

+-------------------------------------
vo_ivtv.c: In function 'ivtv_reset':
vo_ivtv.c:79: error: storage size of 'sd' isn't known
vo_ivtv.c:80: error: storage size of 'sd1' isn't known
vo_ivtv.c:84: error: 'IVTV_STOP_FL_HIDE_FRAME' undeclared (first use in this function)
vo_ivtv.c:84: error: (Each undeclared identifier is reported .ly .ce
vo_ivtv.c:84: error: for each function it appears in.)
vo_ivtv.c:87: error: 'IVTV_IOC_STOP_DECODE' undeclared (first use in this function)
vo_ivtv.c:97: error: 'IVTV_IOC_START_DECODE' undeclared (first use in this function)
vo_ivtv.c:80: warning: unused variable 'sd1'
vo_ivtv.c:79: warning: unused variable 'sd'
make[1]: *** [vo_ivtv.o] Error 1
make[1]: Leaving directory `/data1/wdy-tools/smplayer/MPlayer-1.0rc2/libvo'
make: *** [libvo/libvo.a] Error 2

+-------------------------------------


解决方法,在
安装 MPlayer时: ./configure --disable-ivtv

随便找了找,用了configure 参数如下:
./configure --codecsdir=/usr/lib/codecs --enable-gui --enable-menu --prefix=/opt --mandir=/usr/share/man --win32codecsdir=/usr/lib/win32 --enable-largefiles --disable-tv --enable-freetype --disable-inet6 --enable-gl --enable-xv --enable-x11 --disable-ivtv

然后冒出一个错误,The GUI requires libavcodec with PNG support (needs zlib).
找了N久,网上都说需要“sudo apt-get install libavcodec-dev”就可以了,libavcodec-dev会将zlib装好的,我用了,不行。然后又去找zlib在ubuntu下到底是个 什么名字,就是这个"zlib1g-dev",我已经装好的。libpng12-dev也装好了。

最好只好找configure.log,其实我都翻了几遍了,可是从文件最后根本看不出什么端倪,不过这次我搜索了configure.log中的 zlib,然后发现这么一句“/usr/bin/ld: cannot find -lXv”,然后真相大白,是libXv.so没有,于是“sudo apt-get install libxv-dev",configure通过。

1. The GUI requires libavcodec with PNG support (needs zlib).
solution:
sudo apt-get install zlib1g-dev
sudo apt-get install libxv-dev

2. vo_ivtv.c: In function 'ivtv_reset':
vo_ivtv.c:79: error: storage size of 'sd' isn't known
vo_ivtv.c:80: error: storage size of 'sd1' isn't known
vo_ivtv.c:84: error: 'IVTV_STOP_FL_HIDE_FRAME' undeclared (first use in this
function)

solution:
because i don't want ivtv used on my pc, so i use --disable-ivtv to reconfigure it.

3. undefined reference to `video_out_ivtv'
collect2: ld returned 1 exit status

solution:
in file libvo/video_out.c, where
#ifdef HAVE_DXR2
extern vo_functions_t video_out_dxr2;
#endif
extern vo_functions_t video_out_dxr3; // ошибка сделана тут
#ifdef HAVE_IVTV
extern vo_functions_t video_out_ivtv;
#endif

edit it like this:
#ifdef HAVE_DXR2
extern vo_functions_t video_out_dxr2;
#endif
#ifdef HAVE_DXR3
extern vo_functions_t video_out_dxr3; / / Added patch HAVE_DXR3 because that is not compiling mplayer
#endif
#ifdef HAVE_IVTV
extern vo_functions_t video_out_ivtv;
#endif