zoukankan      html  css  js  c++  java
  • win7下使用cygwin编译VLC

     win7下使用cygwin编译VLC
    http://kathy.blog.51cto.com/1168050/295460
    2010-04-15 14:54:01
    标签:编译 休闲 VLC 职场 win7
    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://kathy.blog.51cto.com/1168050/295460
    前几天使用MinGW+msys编译,错误百出
    经过几天调,改还是没有成功,不是x264版本落后就是CACA版本落后
    我猜想是msys的lib没有及时更新导致的,
     
    在各位的建议下使用cygwin编译,由于本人么有看无言的视频 导致一些错误,另外一个由于是windows7系统也出现了一些 别人没有遇到的错误
    总结如下:
     
    首先关于Cygwin 安装以及卸载:
    cygwin安装使用了比较简便的方法是无言博客的已经下载好的包然后使用本地安装:
    注意1:由于本人不仔细的原因在安装的时候选择了default选项,导致第一次bootstrap错误:
    $ ./bootstrap && dos2unix ./configure-vlc01.sh && ./con 
    + ACLOCAL_ARGS='-I m4 ' 
    + test -d extras/contrib/bin 
    ++ uname -s 
    + test .CYGWIN_NT-6.1 = .Darwin 
    + pkg-config --version 
    + PKGCONFIG=no 
    + export AUTOPOINT 
    + test '' 
    + AUTOPOINT=autopoint 
    + autopoint --dry-run --force 
    + AUTOPOINT=true 
    + echo 
    + set +x 
    generating modules/**/Makefile.am 
    ....................................................... 
    + echo 
    + echo 
    + cp -f INSTALL INSTALL.git 
    + autoreconf --install --force --verbose -I m4 
    ./bootstrap: line 110: autoreconf: command not found
     
    于是重装Cygwin选择keep 按照无言博客的pic选项选择;
    结果第二次bootstrap出现了折磨我一天的一个错误:
    + autoreconf --install --force --verbose -I m4
       8928 [main] perl 4540 C:cygwininperl.exe: *** fatal error - unable to remap C:cygwinli
    bperl55.10i686-cygwinautoFileGlobGlob.dll to same address as parent(0x910000) != 0x9F000
    0
          8 [main] perl 4476 fork: child 4540 - died waiting for dll loading, errno 11
    。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
    然后是一大堆perl 没有fork成功的错误
    ctrl+C 停止运行。找错尝试了以下几种方法:
    1:卸载重装--这个过程也被折磨了:
    卸载过程如下:
    --千万不要用setup的install卸载 否则 会产生不能不能卸载的一个ID 我深受次苦
    具体步骤如下:
    1.删除安装用的临时文件夹(在cygwin里输入命令)(如果你没设可以跳过这步,可以去c盘看看有没有什么文件夹是在安装了cygwin之后产生的,一般那就是了)
    $ rm -f /cygdrive/c/你的临时文件夹
    2.停止cron service(没开启此服务的可以跳过,我的默认就没开启)
    $ cygrunsrv --stop cron
    $ cygrunsrv --remove cron
    3.停止并删除inetd服务(我的默认也没开启)
    $ net stop inetd
    $/usr/sbin/inetd --remove-as-service
    4.删除安装文件夹,默认是c:cygwin
    5.删除桌面上的icon,和开始菜单里的启动文件夹
    6.删除注册表里的相关项
    HKEY_LOCAL_MACHINESOFTWARECygnus Solutions
    HKEY_CURRENT_USERSoftwareCygnus Solutions
    7.删除环境变量(PATH, CYGWIN)
    环境变量PATH里的c:cygwinin; 还有名叫CYGWIN的变量
    -------------------------
    如果你在再次安装 第一次运行之后没有出现home 请将环境变量HOME删除
     
    我卸载只用了 4 5 6 7 好OK
     安装的时候我选择全部安装 呵呵。。。。省事的方法 浪费空间
    言归正传::::
    为了解决fork perl5这个错误我费尽心机:
    1.关闭杀毒软件--------问题依旧
    2右键 管理员运行Cygwin--问题依然存在
    3C盘空间不够(剩下2.7G)-Cygwin安装换到F盘(21G)---问题依然存在;;
     
    再次Google 找到如下解决办法。顺利解决:
         1. shutdown all Cygwin processes and services
         2. start ash (do not use bash or rxvt)
         3. execute /bin/rebaseall (in the ash window)
     即:
    1 关掉cygwin窗口
    2运行-cmd 进去你安装Cygwin的路径下 执行/bin/ash
    3然后$ /bin/rebaseall
     
    终于解决fork问题:
    下边说一下整体安装编译过程:
    1.安装cygwin 注意:不要default  严格按照无言给出的pic选项选择
      懒的话就inshtall all
    2.按照完成后运行一次 初次运行会创建../home/usrname/文件夹
     
    3下载源码以及第三方库 这里省事了 我没用去匹配直接用了
    高人提示的去下载:
    vlc-0.9.9a版本匹配的第三方库——contrib-20090329-win32-bin-gcc-4.2.1-sjlj-runtime-3.13-only.tar.bz2
    vlc-0.9.9a.tar.bz2contrib-20090329-win32-bin-gcc-4.2.1-sjlj-runtime-3.13-only.tar.bz2   w32api-3.11-1.tar.bz2qt4-4.4.1-win32-bin.tar.bz2拷贝到/home/username/下面(username为登陆的用户目录),
     
    运行以下命令解压:
    tar xjvf contrib-20090329-win32-bin-gcc-4.2.1-sjlj-runtime-3.13-only.tar.bz2 -C / 
    tar xjvf vlc-0.9.9a.tar.bz2
    tar xjvf w32api-3.11-1.tar.bz2 -C /
    tar xjvf qt4-4.4.1-win32-bin.tar.bz2
    必须做一点点清理工作:
    rm -rf /usr/win32/bin/moc
    rm -rf /usr/win32/bin/rcc
    rm -rf /usr/win32/bin/uic
     
    这里注意:如果手动删除 只删除moc rcc uic文件 保留其exe
    ./bootstrap
     
    执行以下
    PATH=/usr/win32/bin:$PATH
    PKG_CONFIG_LIBDIR=/usr/win32/lib/pkgconfig
    CPPFLAGS="-I/usr/win32/include -I/usr/win32/include/ebml"
    LDFLAGS=-L/usr/win32/lib
    CC="gcc -mno-cygwin" CXX="g++ -mno-cygwin"
    ./configure
             --host=i686-pc-mingw32
             --enable-nls --enable-sdl --with-sdl-config-path=/usr/win32/bin
             --enable-avcodec --enable-avformat --enable-swscale
             --enable-faad --enable-flac --enable-theora
             --enable-live555 --with-live555-tree=/usr/win32/live.com
             --enable-caca --with-caca-config-path=/usr/win32/bin
             --with-xml2-config-path=/usr/win32/bin
             --with-dvdnav-config-path=/usr/win32/bin
             --disable-cddax --disable-vcdx --enable-goom
             --enable-twolame --enable-dvdread
             --enable-debug    --enable-dca
             --disable-mkv --disable-taglib
             --disable-zvbi
     
     
    保存为configure-vlc01.sh
     
    然后将Makefile.am第694行
    修改
    cp "$(top_srcdir)/extras/package/win32/vlc.exe.manifest" "$(win32_destdir)/"
    #  cp "$(top_srcdir)/extras/package/win32/vlc.exe.manifest" "$(win32_destdir)/"
     
    Makefile.am第735行
    修改
    cp $(top_srcdir)/projects/activex/axvlc.dll.manifest $(win32_destdir)/activex/ 
    #  cp $(top_srcdir)/projects/activex/axvlc.dll.manifest $(win32_destdir)/activex/
     
    然后make 好
    最后执行 make package-win32-base
    搞定!
    记以下我编译过程出现的问题和解决办法:
     
    1错误一
    make[5]: Entering directory `/home/kathy/vlc-0.9.9a/modules/gui/qt4' 
    /usr/win32/bin/moc -DHAVE_CONFIG_H -I../../../include -I../../../include -I/usr/win32/include - 
    I/usr/win32/include/ebml -DSYS_MINGW32 -I../../.. `top_builddir="../../.." ../../../vlc-config 
    --cppflags plugin qt4` -o main_interface.moc.cpp main_interface.hpp 
    /usr/win32/bin/moc: /usr/win32/bin/moc: cannot execute binary file 
    make[5]: *** [main_interface.moc.cpp] Error 126 
    make[5]: Leaving directory `/home/kathy/vlc-0.9.9a/modules/gui/qt4' 
    make[4]: *** [all-recursive] Error 1 
    make[4]: Leaving directory `/home/kathy/vlc-0.9.9a/modules/gui' 
    make[3]: *** [all] Error 2 
    make[3]: Leaving directory `/home/kathy/vlc-0.9.9a/modules/gui' 
    make[2]: *** [all-recursive] Error 1 
    make[2]: Leaving directory `/home/kathy/vlc-0.9.9a/modules' 
    make[1]: *** [all-recursive] Error 1 
    make[1]: Leaving directory `/home/kathy/vlc-0.9.9a' 
    make: *** [all] Error 2
     
    可能出现的原因:
    1 没用下载w32api-3.11-1.tar.bz2和qt4-4.4.1-win32-bini.tar.bz2
    2下载了也解压了 但是没有删除moc rcc uic等三个文件
     
    错误二:
    出现诸多的
     
    /usr/win32/lib/libzvbi.a(packet.o):packet.c:(.text+0x6dc0): undefined reference to `__imp__pthread_mutex_lock' 
    /usr/win32/lib/libzvbi.a(packet.o):packet.c:(.text+0x6dd3): undefined reference to `__imp__pthread_mutex_unlock' 
    /usr/win32/lib/libzvbi.a(caption.o):caption.c:(.text+0x9c): undefined reference to `__imp__pthread_mutex_lock' 
    /usr/win32/lib/libzvbi.a(caption.o):caption.c:(.text+0x10a): undefined reference to `__imp__pthread_mutex_unlock' 
    /usr/win32/lib/libzvbi.a(caption.o):caption.c:(.text+0x171): undefined reference to `__imp__pthread_mutex_destroy' 
    /usr/win32/lib/libzvbi.a(caption.o):caption.c:(.text+0x54b): undefined reference to `__imp__pthread_mutex_init' 
    /usr/win32/lib/libzvbi.a(caption.o):caption.c:(.text+0xd58): undefined reference to `__imp__pthread_mutex_unlock'
     没有定义
    请在configure-vlc10.sh里面添加
             --disable-zvbi
     
     
     
     
     
    遇到的问题N多呵呵 先这些吧
    很感谢
     
     
    delphi lazarus opengl 网页操作自动化, 图像分析破解,游戏开发
  • 相关阅读:
    CxfInvokeUtil
    springboot+webservice(cxf和jax-ws两种方式)
    cxf 工具类转载
    Java动态调用Webservice,不生成客户端,基于soapUI
    转载 CXF动态调用webservice
    spring gzip 静态压缩优化
    sql server2008登录出错怎么整
    配置opencv时计算机显示丢失opencv_world300d.dll如何解决
    随记
    多态与异常处理(课后作业)
  • 原文地址:https://www.cnblogs.com/delphi-xe5/p/5510774.html
Copyright © 2011-2022 走看看