国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

編譯VLCforIOS

2019-11-14 20:13:39
字體:
來源:轉載
供稿:網友

之前接觸VLC是因為Winrt的項目,后來似乎ARM版本的始終搞不定(沒有針對于ARM-COFF的GCC編譯器),vlc for winrt的項目好久沒有更新了,自己也沒有深入研究。有一天跟同事聊,他們說android和ios都沒有一個像Media Foundation那樣的多媒體框架,我就想到了是不是可以基于VLC這套框架來開發。研究完之后我才發現,VLC真的是一個偉大的項目。

 

我用了大概一周的時間來研究VLC的編譯,文檔上說的很簡單,你git下來之后,運行腳本,喝杯咖啡,就編譯好了(https://wiki.videolan.org/iOSCompile)。但賜予天朝的網絡,很多依賴庫下載不下來。所以在編譯之前,必須要有給力的FQ環境才可以。

ios這邊會有幾個分支

http://git.videolan.org/?p=vlc-ports/ios.git;a=summary 這個是帶有VLC for ios全部功能的分支,里面有包含UI和vlc的SDK,還有其他第三方庫。

http://git.videolan.org/?p=vlc-bindings/VLCKit.git;a=summary 這個只是有vlc的sdk和一個簡單的sample

如果你不想編譯整個VLC,只是用他們的SDK,我建議從http://nightlies.videolan.org/build/ios/ 這邊下載SDK,解壓下載的文件,引用進vlc_for_ios.xcodePRoj的項目里,直接生成就可以。

如果想編譯VLC,我建議還是先已編譯SDK 比較好,編譯SDK的文檔在這里(https://wiki.videolan.org/VLCKit/)

 

首先要用git clone 代碼 git://git.videolan.org/vlc-bindings/VLCKit.git

如果你的MAC中已經安裝了autoconf等工具,這里強烈建議把這些工具從PATH中移除再去跑腳本,VLC會下載對應的編譯工具,如果不移除系統中的工具,會因為環境,或者版本沖突,報各種莫名其妙的錯誤。修改PATH用export就好。

然后執行./buildMobileVLCKit.sh 

如果你的VPN給力的話,確實如文檔所說喝個咖啡就好了。

但是我這邊有好多包 curl下載不下來,比如freetype2等。這個時候可以通過瀏覽器下載,或者從別的地方copy過來,然后把把tar.gz文件放到 {vlckit主目錄}/MobileVLCKit/ImportedSources/vlc/contrib/tarballs 下面。curl下載完之后會校驗一下shasum的值。很奇怪的是瀏覽器下載的文件,這個值居然和curl下載下來的不一致。

這個時候要去修改{vlckit主目錄}/MobileVLCKit/ImportedSources/vlc/contrib/src/{對應庫的名字}/SHA512SUMS 文件。 我們先要修改下載文件的后綴名,我這里的環境.tar.gz被修改成了.tar,然后再用shasum -a 512 {文件名} 算出SHA的值,SHA512SUMS的值替換成我們算出來的。

還有些文件會被改名字,比如pkg-config-lite-0.27.1-1 會被改成pkg-config-0.27.1-1。這種情況會發生在curl無法下載的情況下,如果能正常下載,請忽略。這段邏輯在(vlckit主目錄}/MobileVLCKit/ImportedSources/vlc/extras/tools/tools.mak 中描述)

接著再運行./buildMobileVLCKit.sh -n 切記要加-n的參數,這個參數是告訴腳本禁用網絡,這樣我們做的修改就不會被git給覆蓋掉。當然如果你想checkout也行,但是我覺得這種方法簡單有效。

如果你之前沒有刪除PATH,編譯到后來會有莫名其妙的錯誤。這個時候把PATH改掉后,再去編譯,有好多已經編譯好的,autoconf不會再去給你配置一遍,所以還是會報錯。這個時候你可以刪除所有代碼,重新clone一遍。再此之前,你可以嘗試刪除根目錄的aclocal.m4 和configure文件,這樣腳本就會再去configure一遍,或許能解決問題。

./buildMobileVLCKit.sh 是編譯真機的 -s 是編譯模擬器的 -d 是編譯debug的

我所遇到的問題大概就這些,祝大家都能編譯成功。

 

最后說幾句題外話,vlc確實是一個偉大的項目,我嘗試的是給vlc寫一個demux的插件,個人感覺在虛擬機里面的性能還不錯,由于公司比較摳,自己比較屌絲,沒有真機測試。。。。但是我相信效果應該不是很差。

開源的那套編譯器速度很快,比VS快多了。同樣代碼規格的項目在VS里面要等半天,而這套編譯器刷個微博就好了。而且VS的這套東西也不兼容開源的代碼,之前編譯ffmpeg遇到的最大問題就是,VS的這套東西無法編譯GNU風格的匯編。然后呢GCC又沒有ARM-COFF的編譯器,本來這個編譯器應該是微軟提供的,就像android那樣,但是微軟沒出。。VS的C編譯器本身也有問題,有些代碼GCC能編譯過,cl卻不行。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 天长市| 江永县| 肥乡县| 济南市| 子长县| 陵川县| 台湾省| 孟村| 叶城县| 扎囊县| 察雅县| 霍林郭勒市| 西青区| 巨鹿县| 乃东县| 合水县| 潞城市| 大埔县| 崇左市| 库尔勒市| 长泰县| 讷河市| 新蔡县| 沈丘县| 大同县| 襄垣县| 砚山县| 德阳市| 东至县| 房产| 津市市| 望奎县| 昌江| 新余市| 巍山| 鄢陵县| 凤庆县| 武陟县| 郸城县| 藁城市| 广汉市|