使用Cygwin實現vlc 1.0.5的wince移植

本文完全參照了天將降的博客文章,寫于此以作來日備忘之用,原文地址:http://bk6.blog.163.com/blog/static/24498560201051193449196/

第一步:下載安裝Cygwin。筆者建議大家不要安裝不完整的版本,以免出現不必要的錯誤。之前就是用了網上下的一個300多兆的簡化版本,結果編譯會出現缺少編譯器等錯誤。Cygwin沒有必要下載最新的,只要是完整版本就好。最后提醒大家在線安裝Cygwin的過程相當漫長,而且會有下到一大半時報錯無法下載的問題,強烈建議選擇Use IE5 Settings的方式下載

安裝Cygwin時如下選項是必選項:

Archive
???? unzip (5.52-2)
???? zip (2.32-2)
Devel
???? autoconf (4-1 2.13-3 2.61-1)
???? automake (2-1 1.10-1 1.4p6-4 1.5-2 1.63-3 1.7.9-3 1.8.5-3 1.9.6-2)
???? binutils (20080624)
???? cvs (1.11.22-1)
???? gcc (3.4.4-3)
???? gcc-core (3.4.4-3)
???? gcc-g++ (3.4.4-3)
???? gcc-mingw (20040810-1)
???? gcc-mingw-core (20050522-1)
???? gcc-mingw-g++ (20050522-1)
???? gdb (6.8-2)
???? gettext (0.15-1)
???? gettext-devel (0.15-1)
???? git (1.6.0.2-1)
???? libiconv (1.11-1)
???? libgcrypt-devel (1.41-4)
???? libtool (1.5.27a-1)
???? make (3.81-2)
???? mingw-runtime (3.15.1-1)
???? nasm (2.02-1)
???? patchutils (0.2.31-2)
???? pkg-config (0.23a-2)
???? subversion (1.5.2-1)
Editor
???? vim (7.2-3)
Libs
???? expat (2.0.1-1)
???? libgcrypt (1.4.1-4)
Web
???? curl (optional: for building extras/contrib) (7.16.3-1)
???? wget (optional: for building extras/contrib) (1.11.3-1)

這里還是建議硬盤空間大的話,完全安裝!!

第二步:編譯前的準備工作

源碼下載:vlc-1.0.5.tar.bz2
http://download.videolan.org/pub/videolan/vlc/1.0.5/vlc-1.0.5.tar.bz2
交叉編譯器:mingw32ce-0.59.1.tar.bz2
http://cdnetworks-kr-2.dl.sourceforge.net/project/cegcc/cegcc/0.59.1/cegcc_mingw32ce_cygwin1.7_r1375.tar.bz2
第三方庫:contrib-20091114-wince-bin-gcc-4.1.0-runtime-3.15.2-only.tar.bz2
http://download.videolan.org/pub/testing/contrib/contrib-20091114-wince-bin-gcc-4.1.0-runtime-3.15.2-only.tar.bz2
注:比較麻煩的是第三方庫,這個版本比較老,提供的第三方庫也不完整,需要自己做一些修改。(可以根據執行configure腳本時的提示做對應到改動)

第三步:將mingw32ce-0.59.1.tar.bz2解壓至/opt目錄下;
將contrib-20091114-wince-bin-gcc-4.1.0-runtime-3.15.2-only.tar.bz2(這里我是用自己修改后的第三方庫)解壓至/usr目錄下;
將源碼vlc-1.0.5.tar.bz2解壓至/home/"yourname"目錄下;

完成該步驟后,你會看到:/opt/mingw32ce /usr/wince /home/"yourname"/vlc-1.0.5這三個目錄

第四步:根據/vlc-1.0.5目錄下configure文件編寫腳本文件con-105.sh

腳本文件如下:
PATH=/opt/mingw32ce/bin:$PATH /
CPPFLAGS="-I/usr/wince/include -D_WIN32_WCE=0x0500" /
LDFLAGS="-L/usr/wince/lib" /
PKG_CONFIG_LIBDIR=/usr/wince/lib/pkgconfig /
./configure --host=arm-mingw32ce /
--enable-dshow --enable-bda --disable-hal --disable-activex --disable-vlc /
--disable-directx --disable-dvdnav --disable-libgcrypt --enable-wingdi /
--disable-remoteosd --disable-sdl --disable-skins2 /
--disable-faad --enable-mad --enable-wingdi --enable-waveout /
--enable-mkv --enable-httpd --enable-libmpeg2 --enable-ogg /
--enable-live555 --enable-realrtsp --enable-bda /
--enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac /
--with-ffmpeg-zlib --enable-faad --enable-flac --enable-theora /
--enable-csri --enable-libass --enable-asademux --enable-freetype=/usr/wince/freetype-2.3.12 /
--enable-release --enable-disable --enable-optimizations --enable-sse --enable-mmx --enable-optimize-memory
注:此腳本文件一定要注意每行末尾不要有多余的空格,否則會出錯。

第五步:執行腳本文件 ./con-105.sh

執行前,如果你是用文本編輯器編寫的腳本,需要先運行命令:dos2unix con-105.sh
這里最好用root用戶來執行,否則會出現權限錯誤提示(當然你也可以用chmod 777 con-105.sh來修改此文件的權限);


第六步:編譯代碼?? 執行命令:make
執行的過程中遇到如下錯誤,都找到了相應的解決方法.....

問題一:剛執行幾行就出現錯誤

解決:可能是指定的路徑沒有生效,重新設置PATH,命令:PATH=/opt/mingw32ce/bin:$PATH

問題二:.libs/libaccess_realrtsp_plugin_la-access.o:access.c:(.text+0x6b8): undefined reference to `closesocket'
.libs/libaccess_realrtsp_plugin_la-access.o:access.c:(.text+0x6b8): relocation truncated to fit: ARM_26 against undefined symbol `closesocket'
collect2: ld returned 1 exit status
make[6]: *** [libaccess_realrtsp_plugin.la] 錯誤 1

解決:修改vlc_network.h中`closesocket'的定義;

問題三:如果中途遇到關鍵字atoll的錯誤,打開config.h搜索關鍵字atoll

注掉以下代碼:#define HAVE_ATOLL 1

如果中途遇到關鍵字iconv的錯誤,打開config.h搜索關鍵字iconv

注掉以下代碼:#define HAVE_ICONV 1

第七步:打包

執行:make package-wince
就能直接將生成的文件打包成vlc-1.0.5.zip
或者執行:make package-wince-base
得到一個vlc-1.0.5的目錄

遇到問題:# make package-wince
OK.
cp "./bin/.libs/vlc.exe" "./vlc-1.0.5/"
cp: 無法 stat “./bin/.libs/vlc.exe”: 沒有該文件或目錄
make: *** [package-win-common] 錯誤 1

解決辦法:在/home/micro/vlc-1.0.5目錄下新建.libs文件夾,并將vlc.exe拷進該文件夾,然后重新執行make package-wince命令即可。

至此我們就得到了VLC 1.0.5對應的wince版本的DLLS。(注:由于后續版本中VLC已經不再為wince提供界面支持,所以我們編譯的最后只能生成可供調用的DLLS,并無可以直接運行的界面)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/455537.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455537.shtml
英文地址,請注明出處:http://en.pswp.cn/news/455537.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

andriod studio 運行 無結果_華為物聯網操作系統LiteOS內核教程01——IoT-Studio介紹及安裝...

1. 物聯網一站式開發工具 —— IoT StudioIoT Studio 是支持 LiteOS 嵌入式系統軟件開發的工具,提供了代碼編輯、編譯、燒錄 及調試等一站式開發體驗,支持 C、C、匯編等多種開發語言,讓您快速,高效地進 行物聯網開發。2. IoT Stud…

5G通信技術能否終結商用WiFi?

科技創新與體育發展可謂相生相伴,而如今科技在體育領域的應用也越來越廣泛。本周的話題關于5G技術與球場,作者為英國體育娛樂營銷咨詢公司Stadia Solutions的聯席首席執行官戈登坎貝爾。在坎貝爾先生看來,球場Wi-Fi賦予了俱樂部對數據的掌控力…

顏色轉換

以藍色為例,#0000FF應該被表示成rgb(0,0,255)。 我們將函數命名為getRGB() (可以將字符串視為數組,這個數組的元素為字符) function getRGB(color) {var rgb [parseInt(0xcolor.slice(1,3)),parseInt(0xcolor.slice(3,5)),parseI…

wince ./configure

CPPFLAGS"-I/usr/wince/include -D_WIN32_WCE0x0500" LDFLAGS"-L/usr/wince/lib" ./configure--hostarm-mingw32ce 指定軟件運行的系統平臺;host就是你編譯好的程序可以運行的平臺--target-osmingw32ce 指定軟件面向(target to)的系統平臺.這主…

android 按鍵會觸發ontouch嗎?_Android實現炫酷的拖拽浮動按鈕

IOS的Assistive Touch效果很炫酷,可以任意拖拽,同時點擊后會展開菜單欄。然而,這不只是IOS的特權,Android也可以實現。但是由于懸浮窗需要申請權限,所以本文僅在app內實現,可以任意拖拽,并可以響…

強名稱程序集(strong name assembly)——為程序集賦予強名稱

引言:在曾經的項目開發中,在程序集中見到過一個后綴為*.snk的文件。當時看這個文件的圖標。感覺可能是企業內部保護版權啥的一種方式。一,強程序集攻克了哪些問題?1,唯一標識一個程序集2,放置程序集被仿冒和…

如何成為一名合格的數據分析師

“21世紀什么最貴,人才”,在目前大數據時代下,什么最難找,什么最貴,實現數據價值的人,數據分析師。 但是對于數據分析師的認識,比較極端,但對數據分析師價值的認識正在回歸理性。很多…

【ffmpeg for wince】音視頻編解碼多平臺移植(for window/wince))ffmpeg

from: http://www.cnblogs.com/windwithlife/archive/2009/05/31/1492728.html 終于完成了了第二個Client side原型(for Wince),其中花掉我最多時間的就是ffmpeg的對WINCE的移植。其中有大半時間是由于網上的一些不完整及不正確信息所誤導,但…

Java 重寫(Override)與重載(Overload)

重寫(Override) 重寫是子類對父類的允許訪問的方法的實現過程進行重新編寫!返回值和形參都不能改變。即外殼不變,核心重寫! 重寫的好處在于子類可以根據需要,定義特定于自己的行為。也就是說子類能夠根據需要實現父類的方法。在面…

銀聯pos小票word模板_商家pos機刷卡必須知道的知識

相信很多卡友伙伴或者商鋪店家都裝有pos機,然后一般pos機都沒有使用說明書,更沒有結合刷卡方法在內的秘籍。今天我就分享下刷卡必須知道的一些知識。剛剛辦理pos機的當天一定要注意:使用之前呢,務必核對一下基本信息,例…

《Ext JS權威指南》——2.4節關于Ext.onReady

2.4 關于Ext.onReady 代碼為什么寫在Ext.onReady中,而不是在body中添加一個onload事件并在onload事件中運行呢?主要原因是Ext.onReady在DOM模型加載完畢后即可進行操作,而無需像onload事件那樣,等待頁面的所有資源都加載完畢后才…

git push 提交時顯示 Empty reply from server的解決辦法

輸入 git fetch origin --prune 參考鏈接:https://stackoverflow.com/questions/28364023/gits-error-on-push-empty-reply-from-server 轉載于:https://www.cnblogs.com/team42/p/6941678.html

轉]移動視頻監控(1)---項目綜述

對于市場上的視頻監控系統,大家都有一定的了解,就是視頻采集,經過無線/有線發送到服務或代理,客戶從服務或代理上得到視頻/音頻流。不復雜。 對于不遠的將來,3G,4G的到來,對移動的業務有一個推動…

java 空接口_學Java,java接口搞明白了嗎?大牛讓你一文搞清楚

前言對于面向對象編程來說,抽象是一個極具魅力的特征。如果一個程序員的抽象思維很差,那他在編程中就會遇到很多困難,無法把業務變成具體的代碼。在 Java 中,可以通過兩種形式來達到抽象的目的,一種是抽象類&#xff0…

Check Point CEO:“我們正在積極尋找收購目標”

Check Point Sofrware Technologies很可能成為下一個會產生收購案的主流安全廠商,首席執行官Gil Shwed在該公司第二季度財報電話會議上這樣表示。 “我們正在積極地尋求收購目標,期待無論是大規模的還是小規模的擴張,”Shwed表示。“我們在并…

Spark SQL 編程API入門系列之SparkSQL數據源

不多說,直接上干貨! SparkSQL數據源:從各種數據源創建DataFrame 因為 spark sql,dataframe,datasets 都是共用 spark sql 這個庫的,三者共享同樣的代碼優化,生成以及執行流程,所以 s…

H.264中的一些易混淆概念

Q:PSNR 峰值信噪比 Q:是根據它來取qp是不是? A:不是, 和QP沒有直接關系, 但是QP的選擇會影響到PSNR Q: 如果不用率失真最優化, 為什么選擇SATD+deltar(mv,mode)作為模式選擇的依據?為什么運…

Java中final關鍵字的幾種用法

在java的關鍵字中,static和final是兩個我們必須掌握的關鍵字。不同于其他關鍵字,他們都有多種用法,而且在一定環境下使用,可以提高程序的運行性能,優化程序的結構。下面我們來了解一下final關鍵字及其用法。 final關鍵…

python pyqt5安裝_Python3 安裝PyQt5及exe打包圖文教程

環境: Python 3.6.4 Pycharm Professional 2017.3.3 PyQt5 PyQt5-tools① Python 3 安裝Python 3.x 安裝時,默認勾選ADD Python 3.6 to PATH和ADD Python to environment variables的情況下,系統會向path中增加以下兩個環境變量。D:\Program Files\Py…

《企業軟件交付:敏捷與高效管理精要》——3.4 企業軟件交付的軟件工廠方法...

3.4 企業軟件交付的軟件工廠方法 正如我們前面討論的,今天的機構面對的商業環境正以前所未有的速度發生變化。與此同時,這些機構還要管理和降低整個機構的運營成本。這就直接意味著,他們不僅要最大限度地減少浪費和低效率,還要提…