1. 程式人生 > >vlc2.2.4在64位ubuntu下的交叉編譯

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

 with either i686-w64-mingw32 or x86_64-w64-mingw32 adapted to your target Windows version (32-bit or 64-bit, respectively)

下面所出現的命令中,所有的 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)
注意括號裡的:qt編譯失敗則用qt4-default,改用qt4-default後qt不報錯了

但是其他報錯,提示解除安裝程式可能會不正常,我不用解除安裝程式,所以不關心

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