官網的編譯教程: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目錄下就可以了
- 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
- http://ftp.gnome.org/pub/GNOME/binaries/win32/glib (這里手動選擇最新的non-dev版本)
- 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
- http://www.jgoettgens.de/Meine_Bilder_und_Dateien/ragel-vs2012.7z
之后運行
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