window下使用mingw編譯vlc-2.1.0-git


官網的編譯教程: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

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM