ubuntu14.04交叉編譯vlc2.1.5源碼,編譯出在win32下運行的程序

要開始編譯vlc,首先就是到官網去查找資料,爲了滿足需求,編譯出來在win32下運行,我要修改vlc的plugins下的dll代碼
https://wiki.videolan.org/Win32Compile/
1.下載官網下載源碼
http://get.videolan.org/vlc/2.1.5/vlc-2.1.5.tar.xz
2.準備環境:我的是ubuntu14.04系統.由於Ubuntu系統有在線安裝,因此交叉編譯中大部分的第三方工具可以通過系統自動安裝,較爲方便。
vlc2.1.5


3. 編譯環境的搭建
1>>ubuntu12.04之前的版本無法在線安裝完整的編譯環境,所以要跟新系統到12.04以上
2>>更新系統.以下所有的操作盡在root下執行
apt-get update
3>>安裝gcc/g++及MinGW
apt-get install gcc
apt-get install g++
首先,卸載系統原有支持MinGW(64位兼容)的gcc/g++編譯環境:(安裝過mingw-w64-dev 2.0版的系統環境需要執行卸載操作)
apt-get purge gcc-mingw-w64-i686
apt-get purge g++-mingw-w64-i686
apt-get purge gfortran-mingw-w64-i686
apt-get purge mingw-w64
apt-get purge mingw-w64-tools
apt-get autoremove binutils-mingw-w64-i686(系統自動安裝的軟件包,不再需要)
apt-get autoremove g++ gcc-mingw-w64-base(系統自動安裝的軟件包,不再需要)
apt-get autoremove libstdc++6-4.6-dev(系統自動安裝的軟件包,不再需要)
dpkg-r -P mingw-w64-i686-dev_2.0.*_all.deb(可能的舊版本,一般爲2.0.3_1)
然後,到http://ftp.jp.debian.org/debian/pool/main/m/mingw-w64/下載需用的軟件包,本文使用的是:
mingw-w64-common_3.0.0-3_all.deb
mingw-w64-i686-dev_3.0.0-3_all.deb
下載後安裝 mingw-w64-i686 軟件包:
dpkg-i mingw-w64-common_3.0.0-3_all.deb
dpkg-i mingw-w64-i686-dev_3.0.0-3_all.deb
最後,重裝MinGW的gcc/g++支持:
apt-get install gcc-mingw-w64-i686
apt-get install g++-mingw-w64-i686
apt-get install gfortran-mingw-w64-i686
apt-get install mingw-w64-tools
4>>安裝其他工具和插件(部分工具可能不需要安裝)
apt-get install subversion        (編譯contrib使用)
apt-get install yasm                 (編譯contrib使用)
apt-get install cmake              (編譯contrib使用)
apt-get install cvs                     (編譯contrib使用)
apt-get install git
apt-get install lua5.1
apt-get install libtool
apt-get install automake
apt-get install autoconf
apt-get install autopoint
apt-getinstall gettext
apt-get install pkg-config
apt-get install make
apt-get install qt4-dev-tools    (如將另行編譯Qt4,則無需安裝, 因爲vlc2.1.5使用的Qt4的庫所以安裝qt4-dev-tools/否則其他版本可能要安裝qt5的工具)
apt-get install zip 
apt-get install p7zip
apt-get install p7zip-full
apt-get install nsis
apt-get install bzip2
apt-get install build-essential


截止到以上就是安裝完交叉編譯環境,一定要把所有的安裝好,要不在最後出現莫名其妙的問題,也是很頭疼的,尤其不要qt4和qt5同時安裝,如果你知道怎麼設置vlc.2.1.5的qt環境變量,估計這句話是多餘的.
4. 接下來把下載的源碼解壓.可以加壓到/home下.
5.之後就是下載第三方庫,因爲vlc編譯的時候是需要一些庫支持的,如同我們自己的項目也需要一些其他人開發的庫開支持某些功能.
下載地方庫路徑http://download.videolan.org/pub/videolan/contrib/i686-w64-mingw32/版本就選擇vlc-contrib-i686-w64-mingw32-20140506.tar.bz2
6.複製第三方庫到vlc-2.1.5路徑下的/contrib/win32. 並將
vlc-contrib-i686-w64-mingw32-latest.tar.bz2,相關操作爲:
mkdir -p contrib/win32
cd contrib/win32
cp vlc-contrib-i686-w64-mingw32-20131111.tar.bz2 ./
mv vlc-contrib-i686-w64-mingw32-20131111.tar.bz2  vlc-contrib-i686-w64-mingw32-latest.tar.bz2


 ../bootstrap --host=i686-w64-mingw32
make prebuilt
執行完成後在contrib/路徑下生成i686-w64-mingw32 文件夾
rm -f ../i686-w64-mingw32/bin/moc ../i686-w64-mingw32/bin/uic ../i686-w64-mingw32/bin/rcc
7.編譯源碼
返回vlc-2.1.5 根目錄並進行配置,創建win32目錄
cd ../../


mkdir win32 && cd win32
./bootstrap


export PKG_CONFIG_LIBDIR=$HOME/vlc-2.1.5/contrib/i686-w64-mingw32/lib/pkgconfig #//這個環境變量會按照你的配置的路徑而不同,要看清楚pkgconfig這個路徑就好
../extras/package/win32/configure.sh --host=i686-w64-mingw32
make
8. 最後一步就是打包, _win32裏面的就是我們所用的dll
make package-win32-zip


9.make package-win32-zip 失敗,_win32裏面的dll,可以用來二次開發,你會發現很大,對啊,因爲你還沒有對它進行壓縮。
在執行make package-win32-zip時我的是失敗的,因爲訪問不了谷歌的網站
 報錯是svn訪問這個網站出錯
http://npapi-sdk.googlecode.com/svn/trunk/headers
發佈了36 篇原創文章 · 獲贊 17 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章