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

腫麼辦----------------------------------------------------------------------------------------------------------------------------------------------------


















發佈了103 篇原創文章 · 獲贊 5 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章