wince 编译 ffmpeg



1、 安装cygwin,最好是最新版本

2、下载cygwin-cegcc-mingw32ce-0.51.0-1,解压之后放到cywin安装目录下。目录结构应该是/cywin/opt/mingw32ce/...

3、下载ffmpeg源码,我们用的是 http://nchc.dl.sourceforge.net/sourceforge/ambulant/ffmpeg-wm5.zip,解压

4、打开c:\cygwin\opt\mingw32ce\arm-wince-mingw32ce\include\errno.h 
  注释掉  11行 //#ifdef __COREDLL__ 
        12行 //# include_next <errno.h> 
        13行 //#else /* __COREDLL__ */ 
        107行//#endif /* Not __COREDLL__ */

5、打开cywin终端,创建一个文件,vi  ffmpeg-build,然后把下面的脚本拷进去

#!/bin/bash

#create target
rm -rf target
mkdir target

if [ $? -eq 0 ]; then
  echo "creat target dir ok"
else
  exit 0
fi

LIST_FFMPEG="
	libavutil
	libavdevice
	libavformat
	libavfilter
	libavcodec
	libswscale
	libpostproc
"

LIST_FFMPEG_LIB="
	avutil
	avdevice
	avformat
	avfilter
	avcodec
	swscale
	postproc
"

del_output(){
  path=$1
  rm $path/*.lib 
  rm $path/*.dll 
  rm $path/*.def 
}

del_any(){
  for opt; do
        del_output $opt
  done
}

make_all(){
  for opt; do
     echo "cd ${opt}"
	 cd $opt
     make
    if [ $? != 0 ]; then
       exit 0
    fi
    cd ../
  done
}

cpy_all_libs(){
  cur=target/lib
  for opt; do
    echo "$(pwd)"
    cp $opt/*.lib $cur/
    cp $opt/*.dll $cur/
   # cp $opt/*.def $cur/
  done
}

cpy_all_headers(){
  cur=target/include
  for opt; do
    echo "$(pwd)"
    inc=$cur/$opt
    mkdir  $inc
    cp $opt/*.h $inc/
  done
}

def_all_libs(){
   for opt; do
     pexports  $opt.dll > $opt.def
     lib /machine:ARM /def:$opt.def /out:$opt.lib
   done
}

del_any  $LIST_FFMPEG


echo "wait for configure..."

./configure --enable-memalign-hack --target-os=mingw32ce --arch=arm --enable-cross-compile  --cross-prefix=arm-wince-mingw32ce- --enable-small --enable-static --enable-shared  --disable-mmx --disable-zlib --disable-debug --disable-ffmpeg --disable-ffserver  --disable-ffplay --disable-encoders --disable-network --disable-muxers --disable-decoders  --disable-filters --disable-demuxers --disable-devices --disable-protocols --disable-bsfs  --disable-parsers --enable-decoder=mpeg4 --enable-decoder=h264 --extra-cflags="-march=armv4 -mtune=xscale"  --prefix=$(pwd)/target


if [ $? -eq 0 ]; then
  echo "configure ok"
else
  exit 0
fi

make_all  $LIST_FFMPEG

mkdir target/lib
cpy_all_libs $LIST_FFMPEG

mkdir target/include
cpy_all_headers $LIST_FFMPEG

cd target/lib/
def_all_libs  $LIST_FFMPEG_LIB

echo "done."

6、安装pexports,网上搜索 pexports-0.43.zip,解压到 cygwin下,或其他地方,并将其bin目录加入环境变量。比如解压到c盘,目录为C:\pexports-0.43\bin,那么设置环境变量应该在终端执行:PATH=/cygdrive/c/pexports-0.43/bin:$PATH,如果直接解压到cygwin安装目录下,则应该是:PATH=/pexports-0.43/bin:$PATH

注意,这一步如果安装失败,那么第7步编译可以成功,并生成dll文件,但是不会产生 *.lib 文件


7、  编译,在cywin终端编译。先把ffmpeg-build文件拷贝到 ffmpeg-wm5源代码根目录下,运行 ./ffmpeg-build,等待运行完成


8、完成后,找到 target目录,下面有include 和lib,此时完成编译


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值