window下使用mingw编译vlc2.1.0git

官网的编译教程:http://wiki.videolan.org/Win32CompileMSYS

编译的各种问题:http://wiki.videolan.org/Win32CompileMSYSTroubleShooting

已经编译好的各种版本:http://nightlies.videolan.org/build/

VS下编译项目:https://github.com/sunqueen?tab=repositories

VLC文档:http://www.videolan.org/developers/vlc/doc/doxygen/html/index.html

 准备编译环境

MinGW


 TDM/MinGW :http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-4.7.1-2.exe/download

  • 选择 "Create"
  • 选择 32bits
  • 安装至 D:\ProgramTools\MinGW32
  • 保持默认设置 

MSys


 MSys压缩包: http://people.videolan.org/~jb/msys/msys.7z

 解压至于 D:\ProgramTools\MinGW32\msys.

 使用 D:\ProgramTools\MinGW32\msys\msys.bat 来进行下面的命令行

 下载vlc源码


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

下载vlc依赖的gun工具


可以进入源代码目录执行:

cd vlc/extras/tools
./bootstrap

这样可以显示出vlc需要的gun工具,执行make命令可以自动下载编译,但是这样做太慢了
我们要手动下载编译好的二进制文件丢进D:\ProgramTools\MinGW32\msys目录下就可以了

之后运行

 make  

接着

export HOME= [你的vlc源代码目录]
export PATH=$PATH:$HOME/vlc/extras/tools/build/bin/

测试:

autoconf --version

能出现 autoconf 的版本信息 说明路径已正确了

下载contrib


cd vlc/contrib
mkdir win32 && cd win32
../bootstrap --build=i586-mingw32msvc
make prebuilt
cd ..
ln -sf i586-mingw32msvc mingw32

export PATH=$PATH:$HOME/vlc/contrib/mingw32/bin/
rm $HOME/vlc/contrib/mingw32/bin/moc $HOME/vlc/contrib/mingw32/bin/uic $HOME/vlc/contrib/mingw32/bin/rcc 

也可以手动下载对应的预编译库:ftp://ftp.videolan.org/pub/videolan/contrib/

测试:

moc -v      

能显示moc 的版本信息 说明路径正确

编译VLC


 Bootstrap

在vlc源码根目录执行:

./bootstrap
出现问题:

"/bin/m4: cannot remove temporary directory /tmp/..."

这时候可以执行 

dos2unix configure.ac

将 configure.ac 文件转换成Unix的换行格式

Configure

接着执行:

mkdir win32
cd win32
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 --enable-gprof  

 关于配置选项的官网资料:
http://wiki.videolan.org/VLC_configure_help
http://wiki.videolan.org/Configure
http://wiki.videolan.org/Configure

Make

最后执行:

make -j4    
出现问题:

“/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  

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

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

可以执行打包命令:

make package-win32-zip

 打包包含debug信息zip:

make  package-win32-debug-zip

 opensuse下使用qt creator调试vlc-2-0-5

参考链接:http://blog.csdn.net/lovey599/article/details/7062304

 

opensuse下编译vlc-2-0-5

 官方编译说明文档:UnixCompile

获取源码:

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

然后执行:

cd vlc
 ./bootstrap

添加源到系统:

sudo zypper ar http://download.videolan.org/pub/vlc/SuSE/<openSUSEversion> VLC

下载编译vlc依赖的库:

sudo zypper si -d vlc

配置:

mkdir win32
cd win32
 ../configure --enable-run-as-root --enable-gprof --enable-debug --disable-optimizations  --prefix=/home/user/vlc/    

编译:

make

make install
原文地址:https://www.cnblogs.com/lihuixian001/p/2957103.html