http://blog.csdn.net/kaizi318/article/details/9274389

参考:1.windows平台下VLC2.0.5编译  http://blog.csdn.net/shen8686/article/details/8533058

           2.官网编译:http://wiki.videolan.org/Win32CompileMSYSNew

1.解压工具 7-zip

MinGW
-----------------------------------
安装TDM/MinGW
URL: http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-4.7.1-2.exe/download
运行安装向导:
选择         Create
选择         32bit
安装目录  c:\MinGW 
(注意:我安装的时候默认是c:\MinGW32,请手动修改)
其它选项默认
 
MinGW Utils
URL: http://prdownloads.sourceforge.net/mingw/mingw-utils-0.3.tar.gz
解压到 c:\MinGW
 
MSys
----------------------------
 
安装MSys
URL: http://sourceforge.net/project/downloading.php?group_id=2435&filename=MSYS-1.0.11.exe
安装时选择默认路径 c:\Msys\1.0
安装完会跳出黑框,按照以下内容选择
Accept Post Install: [y]
MinGW Installed?     [y]
path to MinGW:       [c:/MinGW]

 
MSys Developer Toolkit
URL:  http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe
完全按照默认选项安装。
 
Git
URL:  http://code.google.com/p/msysgit/downloads/list?can=3
除了换行选项,其它都按照默认选项安装
WGet

URL: http://sourceforge.net/projects/gnuwin32/files/wget/1.11.4-1/wget-1.11.4-1-setup.exe/download

解压到c:\MinGW

AutoTools and libcrypt

  • http://sourceforge.net/projects/mingw/files/MSYS/msysdev/autoconf/autoconf-2.68-1/autoconf-2.68-1-msys-1.0.17-bin.tar.lzma/download
  • http://sourceforge.net/projects/mingw/files/MSYS/msysdev/automake/automake-1.11.1-1/automake-1.11.1-1-msys-1.0.13-bin.tar.lzma/download
  • http://sourceforge.net/projects/mingw/files/MSYS/msysdev/libtool/libtool-2.4-1/libtool-2.4-1-msys-1.0.15-bin.tar.lzma/download
  • http://prdownloads.sourceforge.net/mingw/libcrypt-1.1_1-2-msys-1.0.11-dll-0.tar.lzma
  • http://sourceforge.net/projects/mingw/files/MSYS/Extension/perl/perl-5.8.8-1/perl-5.8.8-1-msys-1.0.17-bin.tar.lzma/download
  • http://sourceforge.net/projects/mingw/files/MSYS/Extension/m4/m4-1.4.14-1/m4-1.4.14-1-msys-1.0.13-bin.tar.lzma/download

Glib and PKG-CONFIG

同样下载以下文件并解压到C:\Msys\1.0    (解压到Bin share 等目录) 7-zip支持直接解压到哪里

需要注意的是第一个链接需要下载最新版本,目前测试通过最新版本是glib 2.28, non-dev版本

  • http://ftp.gnome.org/pub/GNOME/binaries/win32/glib
  • ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip
  • ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config-dev_0.23-3_win32.zip
  • http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime_0.18.1.1-2_win32.zip

添加PKG配置路径变量

在C:\MSys\1.0\msys.bat添加,据wangyong0921翻译,可以直接运行msys.bat,然后输入下面的语句

set PKG_CONFIG_PATH=/win32/lib/pkgconfig   加到msys.bat里的第一行

编译LUA工具

VLC采用LUA脚本语言,我们需要先编译LUA工具

URL:http://www.lua.org/ftp/lua-5.1.4.tar.gz

解压到home文件夹(C:\MSys\1.0\home\<username>)

运行Msys并执行下列指令

cd /home/<username>/lua-5.1.4
make mingw
make install


VLC源代码

好吧,终于要进入正题了。。

Git

-------------------------

打开Git,下载contrib

git clone git://git.videolan.org/vlc.git

获取预编译contrib

------------------------

cd vlc/contrib
mkdir win32 && cd win32
../bootstrap --build=i586-mingw32msvc
make prebuilt
5.执行make prebuilt正常生成i586-mingw32msvc后,仍然可能会报错,并且中断make prebuilt,错误提示为:
tar: i586-mingw32msvc/lib/libdts.a: Cannot create symlink to `/home/jb/vlc/contrib/i586-mingw32msvc/lib/libdca.a': No such file or directory
tar: Error exit delayed from previous errors
make: *** [prebuilt] Error 2

手动执行后续指令即可:
mv i586-mingw32msvc ..   //实际不用mv   直接cd 就行了
cd ../i586-mingw32msvc
change_prefix.sh

6.make prebuilt提示错误:
sed:invalid option --i

MSYS-Shipped不支持-i选项,需要修改change_prefix.sh
用文本编辑器打开"/home/vlc/contrib/src/change_prefix.sh",
将里面的
        echo "Fixing up $file"sed -i.orig -e "s,$old_prefix,$new_prefix,g" $filerm -f $file.orig 

修改为
        echo "Fixing up $file"
#        sed -i.orig -e "s,$old_prefix,$new_prefix,g" $file
    sed -e "s,$old_prefix,$new_prefix,g" $file>$(file).new
    mv $file.new $filerm -f $file.new

重新执行上面的步骤。
7.执行change_prefix.sh时,可能提示
mv: cannot move `./change_prefix.sh.tmp' to `./change_prefix.sh': Permission denied

无视掉这个错误,应该不会影响正常编译。根据个人理解,应该是脚本想修改本身文件失败了。
 不过这里要等好久,要有点耐心!
 
最后的更改:whoami和hostname
 
whoami和hostname是用来在vlc的about对话框显示编译者和主机名的辅助工具,但是whoami在windows下是无效的,而hostname不支持编译时使用的-f选项
 
最好是通过下载并安装GNU whoami和hostname来解决这个问题,文件下载的具体链接可能有所变化,请自己从文件夹中寻找对应的文件。
    1. http://sourceforge.net/projects/mingw/files/MSYS/Base/coreutils
     这里有很多版本,一般来说高版本的文件会比较好,找到类似coreutils-5.97-2-msys-1.0.11-ext.tar.lzma (注意有-ext )的文件,解压并将who.exe、whoami.exe、hostname.exe复制到C:\msys\1.0\bin
    2.http://sourceforge.net/projects/mingw/files/MSYS/Base/libiconv/
    同样选择最新的版本,下载类似libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma(文件名带dll)的文件下载,并解压dll到C:\msys\1.0\bin
    3.http://sourceforge.net/projects/mingw/files/MSYS/Base/gettext/
    选择最新版本,找到类似libintl-0.17-2-msys-dll-8.tar.lzma(文件名带dll)的文件,下载并解压dll到C:\msys\1.0\bin
如果你懒得下这些东西,可以通过下面的方法来解决问题:
whoami
-----------------------------
新建文件,输入
echo '<username>'           echo  administrator

并另存为C:\MSys\1.0\bin\whoami(注意没有扩展名)
 
Hostname
-----------------------------
按照下面的步骤修改configure.ac,让它不再使用'hostname-f'选项
打开C:\MSys\1.0\home\<username>\vlc\configure.ac
搜索并修改下面的内容
old: AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2> /dev/null || hostname`", [host which ran configure])
new: AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])

 
 
编译VLC
 
终于到这步了。。激动吗?
使用命令行来编译vlc,重启msys.bat,按照下面的步骤进行编译
 
bootstrap
---------------------------
cd vlc
cp -v /usr/share/aclocal/* m4/
bootstrap 

这里我遇到了个问题,执行bootstrap的时候提示 GNU Gettext appears to be missing or out-of-date
可以继续执行,没有管他。。
 
这里出现过一次错误,
autom4te-2.68:failed to run /bin/m4: Bad file number
aclocal: /usr/bin/autom4t3-2.68 failed with exit status: 1
autoreconf: failed to run aclocal: Bad file number 

然后就停止执行了,不知道是不是上面某个步骤没搞好导致的,反正删除contrib重新照着流程整一遍就可以了,有哪位遇到过这个问题并解决的话请告诉我,谢谢。
关于这个搞了我N天,最后发现是这样就可以解决:
dos2unix configure.ac

 
执行成功 提示
Successfully bootstrapped
 
Configure
---------------------------

sh extras/package/win32/configure.sh --host=i586-pc-mingw32msvc --disable-nls
sh extras/package/win32/configure.sh --host=i586-pc-mingw32msvc --disable-nls --enable-debug  //这样会出现live555错误
sh extras/package/win32/configure.sh  --with-contrib=contrib/i586-mingw32msvc --disable-nls --enable-debug //OK

如果你想定制选项的话,在这里加上去就好了
 
如果这里遇到了
configure: error: Could not find lua. Lua is needed for some interfaces (rc, telnet, http) as well as many other custom scripts. Use --disable-lua to ignore this error

尝试
 --disable-lua

如果还是不行,就尝试使用 --disable-lua 选项,不过据说没用 
Make(编译)
---------------------------

注意:如果你的<username>的第一个字母是'u'或者'x',将C:\MSys\1.0\home\<username>\config.h中的VLC_COMPILED_BY常量全部改成双反斜杠
执行下面的指令:
PATH=/usr/win32/bin:$PATH make

 
如果这步执行失败了,尝试下面的方法
返回预编译contrib步骤,获取最新版本的contrib
在配置环节(configure-msys.sh),打开文件并添加--disable-upnp
 
生成安装包
---------------------------
make package-win32-base

没有debug信息的普通版本
make package-win32-zip

生成压缩包
make package-win32

生成自安装包,需要在默认路径安装NSIS
make package-win32-base-debug

支持gdb版本
 
如果出现类似
make: *** No rule to make target `package-win32-base'.  Stop.

请使用 package-win32-exe  package-win-base 或common
出现问题:

“/libFLAC.a(bitwriter.o):bitwriter.c:(.text+0x3fb): undefined refer 
ence to `_ntohl@4'

这是由于contrib里面的某个库没有链接ws2_32库导致的

根据错误信息,发现是\vlc\win32\modules\codec这个文件夹下发生的

打开该文件夹下的 Makefile 文件,搜索“-lFLAC”

找到两处地方

FLAC_LIBS = -Le:/tianminProject/VLC/vlc/contrib/mingw32/lib -lFLAC -lm -logg   -lws2_32

LIBS_flac = -Le:/tianminProject/VLC/vlc/contrib/mingw32/lib -lFLAC -lm -logg  -lws2_32

分别在末尾 添加 -lws2_32 ,链接 ws2_32 库

生成时错误

git、svn、makensis等not found

------------------------------------------------

git:从git安装目录下将git.exe拷到 C:\msys\1.0\bin\.

svn:从collab.net.下载

makensis: 按照下面修改makefile文件

# Create package
#   if makensis -VERSION >/dev/null 2>&1; then \
#       MAKENSIS="makensis"; \
#   elif [ -x "/cygdrive/c/Program Files/NSIS/makensis" ]; then \
#       MAKENSIS="/cygdrive/c/Program\ Files/NSIS/makensis"; \
#   elif [ -x "$(PROGRAMFILES)/NSIS/makensis" ]; then \
#       MAKENSIS="$(PROGRAMFILES)/NSIS/makensis"; \
#   elif wine --version >/dev/null 2>&1; then \
#       MAKENSIS="wine C:/Program\ Files/NSIS/makensis.exe"; \
#   else \
#       echo 'Error: cannot locate makensis tool'; exit 1; \
#   fi; \
#   eval "$$MAKENSIS $(win32_destdir)/spad.nsi"; \
#   eval "$$MAKENSIS $(win32_destdir)/vlc.win32.nsi"
source: C:\msys\1.0\home\<username>\vlc\contrib\i586-mingw32msvc\moc.exe
target: C:\msys\1.0\bin\moc.exe

------------------------------------------------- 

版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 上一篇在objc项目中使用常量的最佳实践(JAVA和as3)好像都是这样
  • 下一篇EXC_BAD_ACCESS (code=2, address=0x0)
主题

windows平台下最新版VLC编译 MSYS (2.2.0)相关推荐

  1. libevent在windows平台下通过vs进行编译

    1.vs中新建一个静态库项目 2.配置头文件目录,将./compat../include../WIN32-Code三个目录添加到文件目录中 3.用记事本打开Makefile.nmake文件,可以看到里 ...

  2. ZLMediaKit在windows平台下的编译和运行

    ZLMediaKit是一个新出的流媒体服务器,与SRS功能基本一致,但是SRS不支持windows,ZLMediaKit是支持windows平台的. 方便在windows平台下进行学习和开发. 具体的 ...

  3. Windows平台下程序打包流程

    Windows平台下程序打包流程 1.所有测试完成之后.程序release编译完成 2.依赖库打包 执行deploy.bat 脚本打包最新的程序以及依赖库 3.可执行程序打包 打开打包工程文件.evb ...

  4. Windows平台下安装Hadoop

    http://www.cnblogs.com/kinglau/archive/2013/08/20/3270160.html 1.安装JDK1.6或更高版本 官网下载JDK,安装时注意,最好不要安装到 ...

  5. windows平台下基于QT和OpenCV搭建图像处理平台

        在之前的博客中,已经分别比较详细地阐述了"windows平台下基于VS和OpenCV"以及"Linux平台下基于QT和OpenCV"搭建图像处理框架,并 ...

  6. linux qt 获取u盘名称,QT windows平台下获取U盘 QComboBox显示U盘盘符

    在windows平台下获取U盘信息,可以调用windows API函数比较方便.本来想用qt 来写的,网上关于这方面的代码比较多,但按照提示的步骤来写的就是无法编译,我也不知道为什么.如果有知道的朋友 ...

  7. Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE

    Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE Windows平台下安装Arduino IDE Windows操作系统下可以使用安装向导和压缩包形式安装.下面详细讲解这 ...

  8. Windows平台下安装PhoenixSuit要点

    2019独角兽企业重金招聘Python工程师标准>>> 在上手问题这个板块经常看到烧写固件失败的求助帖,这个帖子主要整理一下Windows平台下安装PhoenixSuit和刷机的要点 ...

  9. MongoDB学习总结(一) —— Windows平台下安装

    > 基本概念 MongoDB是一个基于分布式文件存储的开源数据库系统,皆在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB将数据存储为一个文档,数据结构由键值key=>val ...

最新文章

  1. 【译】保护 Consul 在特定设置中免受 RCE 风险的影响
  2. 文本挖掘技术在CIC的应用--转载
  3. 日志分析系统分类有哪些_Java开发日志规范
  4. [翻译]三张卡片帮你记住TDD的基本原则
  5. 不止代码:循环比赛(分治)
  6. 价值50万年薪的Java面试题
  7. matlab2016a 问题及解决方法记录
  8. 学习c++一点一滴----读取注册表
  9. ubuntu 出错 /etc/sudoers is world writable
  10. HTML颜色代码大全
  11. 微信小程序的一些开发限制
  12. 保证金监控中心保证期货开户和交易记录
  13. linux中oppenoffice的安装
  14. (64)计数器设计(递减计数器)
  15. Pedestrian Detection paper
  16. 哈罗单车获10亿元D2轮融资 共享单车仍有精彩可期待
  17. java项目日志打印总结
  18. 安卓系统控制服务器,安卓系统远程控制云服务器
  19. openshift介绍与应用
  20. FLASH 上传控件传输,服务端保存文件

热门文章

  1. iphone android 朋友圈,最近很火的微信空白朋友圈发布教程!安卓、苹果通用!
  2. 【电路设计】光耦使用及电路设计总结
  3. 深度强化学习的人工智能在游戏中的运用:游戏AI入门及AI优化指南
  4. 优酷播放的html代码,在网页里面嵌入播放优酷视频的js代码
  5. 多级增益的音频放大器
  6. Kalman滤波算法解释与实现
  7. springboot+Vue项目-微博留言(前后端分离,跨域)
  8. 当媒体厂商抛弃了手机二维码厂商,谁会将在手机二维码市场的大海中破冰启航?...
  9. UUV Simulator: Based on Gazebo
  10. QCY T1s 双耳配对教程