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:\cygwin\bin\perl.exe: *** fatal error - unable to remap C:\cygwin\li
b\perl5\5.10\i686-cygwin\auto\File\Glob\Glob.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_MACHINE\SOFTWARE\Cygnus Solutions
HKEY_CURRENT_USER\Software\Cygnus Solutions
7.删除环境变量(PATH, CYGWIN)
环境变量PATH里的c:\cygwin\bin; 还有名叫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.bz2和contrib-20090329-win32-bin-gcc-4.2.1-sjlj-runtime-3.13-only.tar.bz2   w32api-3.11-1.tar.bz2和qt4-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
4 ./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多呵呵 先这些吧
很感谢
 
 

win7下使用cygwin编译VLC的更多相关文章

  1. Win7 下用 VS2015 编译最新 openssl(1.0.2j)包含32、64位debug和release版本的dll、lib(8个版本)

    Win7 64位系统下通过VS2015编译好的最新的OpenSSL(1.0.2j)所有八个版本的链接库, 包含以下八个版本: 1.32位.debug版LIB: 2.32位.release版LIB: 3 ...

  2. win7 下使用cygwin

    http://cygwin.com/index.html      还是看官网! 很多用windows的朋友不习惯于用linux的开发环境.虽然很乐意尝试一下,但是往往怕 linux系统打乱了自己的正 ...

  3. Windows7下采用cygwin编译安装swoole扩展

    常用命令 查看cygwin当前的版本: cygcheck -c cygwin 检查所有安装软件的版本号:cygcheck -c 查看某一个软件安装的版本:cygcheck -c 软件名称 查看本地已经 ...

  4. 64位Win7下用VS2010编译OpenSSL

    http://blog.csdn.net/henter/article/details/8364532 首先要说明,如果不想自己编译OpenSSL,可以到 http://slproweb.com/pr ...

  5. 在win7下配置java编译环境变量

    今天刚接触java编程,环境的配置方法比较复杂.好记性不如烂笔头,发个文章记录一下吧. win7系统 Jdk版本1.6 用鼠标右击“我的电脑”->属性->高级->环境变量系统变量-& ...

  6. ffmpeg2.2在ubuntu下使用NDK编译——并在android工程下测试使用

    作者:wainiwann 出处:http://www.cnblogs.com/wainiwann/ 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则 ...

  7. windows下使用cmake编译zlib与libpng libjpeg

    win7下使用VS2010编译jpeglib 1.下载源代码下载地址:http://www.ijg.org/files/,     选择最新版本的windows版本压缩包,进行下载.     jpeg ...

  8. ubuntu下编译VLC

    ubuntu下编译VLC 标签(空格分隔): ubuntu vlc 视频 编译 [TOC] 1.下载VLC源码包并解压 VLC的源码包在VLC的官网有,可以直接下载.也可以使用git来clone一个. ...

  9. Win7下VS2008编译QtiPlot

    Win7下VS2008编译QtiPlot By wangsh 2011-11-25 QtiPlot 是一款开源免费的科学绘图软件,可运行在多个平台(windows.Linux等)中,从功能上讲,Qti ...

随机推荐

  1. mysql优化工具(索引优化)

    mysql优化工具 1.pt-duplicate-key-checker(检查数据库的重复索引),这款工具可以帮助我们找到重复的索引并且还会给你删除重复索引的建议语句,非常好用. 2.

  2. securecrt(CRT)导入会话

    securecrt是个非常流行的远程管理维护工具,支持fssh.ssh2.telnet等多种协议,也支持中文.设备管理多了,自行手工添加也是很累的活.偷下懒,从别人那复制下文件,倒入到自己的secur ...

  3. Junit测试错误:### Error building SqlSession

    错误代码: org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession.### The error ...

  4. Day9---Python的集合类

    集合类 1.生成办法: 可使用{.....}  或者set()生成集合,例如 a = {23,214,34,324,234,34} #这里的集合就是数学上的集合a = set('dsfasfsdf') ...

  5. jquery实现全选,反选,取消的操作

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. BUUCTF--reverse3

    测试文件:https://buuoj.cn/files/aa4f6c7e8d5171d520b95420ee570e79/a9d22a0e-928d-4bb4-8525-e38c9481469e.ra ...

  7. 2018-2-13-Win10-UWP-Intro-to-controls-and-events

    title author date CreateTime categories Win10 UWP Intro to controls and events lindexi 2018-2-13 17: ...

  8. 一、Angular环境的搭建

    1.安装nodejs (1) 下载网址https://nodejs.org/en/download/ (2) 双击进行安装 (3) 打开命令行,输入node -v 和 npm -v 查看是否安装成功 ...

  9. Sass-数据类型

    Sass和JavaScript语言类似,也具有自己的数据类型,在Sass中包含一下几种数据类型 数字:如,1,2,13,10px; 字符串: 有引号字符串或无引号字符串,如,“foo”,"b ...

  10. java 接口默认方法的使用