Chinaunix首页 | 论坛 | 博客
  • 博客访问: 146952
  • 博文数量: 49
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 576
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-17 11:27
文章分类

全部博文(49)

文章存档

2011年(1)

2010年(15)

2009年(33)

我的朋友

分类: 嵌入式

2009-10-09 23:18:25

本文介绍关于 Mplayer 移植前的编译过程

环境:Red Hat Enterprise Linux 4

1) 交叉编译 libmad
   
    下载 libmad 源码包 (libmad-0.15.1b.tar.gz)
    进入 libmad 目录,输入以下命令:
    $ ./configure --enable-fpm=arm --host=arm-linux --disable-shared --disable-debugging --prefix=/usr/local/arm/ CC=arm-linux-gcc  
    $ make
    $ make install
    此时会在 /usr/local/arm/ 目录下生成 /include /lib 两个目录

    可以 ./configure --help 查询各个参数的用法,这里就不一一介绍了.
    libmad 编译到此完成。按照此过程一般不会出现错误。
 
2) 编译 Mplayer
   
    下载 Mplayer 源码包 (MPlayer-1.0rc2.tar.bz2)
    进入 Mplayer 目录,输入以下命令:
    $ ./configure --cc=arm-linux-gcc --target=arm-linux --enable-static \
     --prefix=/opt/mplayer --disable-win32dll --disable-dvdread \
     --enable-fbdev --disable-mencoder --disable-live --disable-mp3lib \
     --enable-mad --enable-libavcodec_a --language=zh_CN \
     --disable-armv5te --disable-armv6 \
     --with-extraincdir=/usr/local/arm/include \
     --with-extralibdir=/usr/local/arm/lib   

    --prefix指定安装路径,这里可以不需要的
    --enable是使能
    --disable是禁止
    --enable-static是设定静态连接
    --enable-mad (为了在编译和链接的时候找的到头文件和库文件需要在CONFIGURE选项里加入以下两 句,不然在编译的时候会找不到头文件,在链接的时候 –lmad 找不到mad的库文件)

    --with-extraincdir=/usr/local/arm/3.3.2/lib/include(这个指明 mad.h 这个文件所在的路径)

    --with-extralibdir=/usr/local/arm/3.3.2/lib/lib(这个指明libmad相关链接库所在的路径)
   
    $ make
    此时我出现了一下错误:
    arm-linux-gcc -I. -DCODECS2HTML codec-cfg.c -o codec-cfg
    ./codec-cfg ./etc/codecs.conf > codecs.conf.h
    /bin/sh: ./codec-cfg: cannot execute binary file
    make: *** [codecs.conf.h] 错误 126
   
    分析原因应该是生成的 codec-cfg 不能执行
    网上有个帖子是这样解决的(我试了此方法也解决了自己的问题):
    codec-cfg这个可执行文件是最先编译产生的一个文件,这个文件是存在的,怎么会执行不了呢?于是手动执行了一下,系统提示“cannot execute binary file”,突然想起来,codec-cfg是按跨平台方式编译的,产生的是arm的代码,当然不能在x86上执行了,那就先用不用跨平台编译的方式,先 把mplayer编译成x86的代码,于是重新配置,简单的 ./configure, make,然后将生成的codec-cfg改名为codec-cfg.x86。然后再按跨平台方式配置,编译,等编译器出现错误停止编译时,将 codec-cfg.x86该名为codec-cfg,再make
    (此贴出自何人本人也无从得知,如果主人看到,请立即联系本人,在此谢谢此高人前辈)
   
   $ make
   然后本人就得到了可执行的 mplayer 文件

   哈哈,保存,备用。



阅读(1181) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~