vlc2.2.4在64位ubuntu下的交叉編譯
本文標題:vlc2.2.4在64位Ubuntu下編譯出32位的windows庫
注意好幾個關鍵的地方,折騰了好久
Ubuntu版本為16.04 64位的
一定要仔細看官方教程,看不仔細容易出錯哦
下面做幾點說明:
1. 前言
在32位的Ubuntu上嘗試了很久,失敗了,換到64位上,如果你執意要在32位Ubuntn上編譯,不用往下看了
這一步的時候,我用的最新的vlc原始碼,所以使用 Prebuilt (fast)方式
3. Host triplet
注意最後一句話
Please make sure that you replace the keywords HOST-TRIPLET
下面所出現的命令中,所有的 HOST-TRIPLET 你都要替換成i686-w64-mingw32 or x86_64-w64-mingw32,我是要編譯32位的庫,所以都替換成了i686-w64-mingw32
4. Go Back
這一步要注意這句話
Go back to the VLC source directory:
回到vlc原始碼目錄下,就是你vlc的根目錄,如果你中間執行了其他的cd命令,就不要傻傻的複製命令 cd - 了,
5. make prebuilt
這的時候會去下載vlc-contrib-i686-w64-mingw32-latest.tar.bz2 (32位的),你可以自己複製一下連結,在windows上下載好複製到win32目錄
6. get vlc code
vlc原始碼沒必要git,自己在官網下載vlc-2.2.4.tar.xz也是可以的
7.make
qt有報錯,標頭檔案找不到,主要原因是qt4的開發環境,qt5的編譯壞境導致,官方文件有如下說明
- qt4-dev-tools, qt5-default (or qt4-default if qt plugin build fails)
但是其他報錯,提示解除安裝程式可能會不正常,我不用解除安裝程式,所以不關心
8.make package-win32-zip
遇到三個錯誤
一個是提示/usr/include/wine/windows/stdole2.idl 檔案找不到,
我搜索了一下在我的ubuntu中有/usr/include/wine-development/windows/stdole2.idl
所以我把wine-development複製了一份重新命名wine就解決了
cp
wine-development/ wine -rf
第二個問題 7z命令找不到,原因是前面安裝p7zip時,只安裝的精簡包,只支援7zr命令,安裝7zip完整包才支援7z命令,如下命令:
apt-get install p7zip-full
第三個問題:錯誤提示git訪問https://code.videolan.org/videolan/npapi-vlc.git失敗,如果你確定你的ubuntu可以訪問網路,那就是
code.videolan.org伺服器抽風了,請換個時間再來打包
到此為止,終於看到了官方說的
Everything is Ok