ubuntu14.04交叉編譯vlc2.1.5源碼,編譯出在win32下運行的程序(下)

svn export http://npapi-sdk.googlecode.com/svn/trunk/headers npapi-sdk-svn -r HEAD  出錯

前面說了在unbutn系統下交叉編譯vlc-2.1.5源碼,在最後一步打包的時候出錯了,

錯誤大概就是 svn export http://npapi-sdk.googlecode.com/svn/trunk/headers npapi-sdk-svn -r HEAD  出錯

svn也安裝了,ping 百度也能ping通,就是連不上,那好吧,只能想想其它的辦法了。


1.找到報錯的位置  z:\vlc-2.1.5\win32\npapi-vlc\npapi\Makefile 文件的1003-1005行。

npapi-sdk:
svn export http://npapi-sdk.googlecode.com/svn/trunk/headers npapi-sdk-svn -r HEAD
mv npapi-sdk-svn npapi-sdk


看Makefile文件的意思是要下載一個npapi-sdk的頭文件到npapi-sdk-svn文件夾中,之後mv更名爲npapi-sdk。


搞明白問題原因,那就自己去下載npapi-sdk。把裏面的header文件夾放到napapi-sdk裏面。

npapi.h

npfunctions.h

npruntime.h

nptypes.h

2.之後註釋掉以上1004、1005行,繼續 make package-win32-zip

3.如果遇到找不到npapi-sdk裏面的四個文件,那就改一下他們的路徑。

4.可能會遇到一個函數重複定義的問題

Z:\vlc-2.1.5\win32\npapi-vlc\npapi\npcontrol\npwin.cpp中的函數NP_GetMIMEDescription()被重複定義了。

NPP_GET_MIME_CONST char * NP_GetMIMEDescription()
{
  return NPP_GetMIMEDescription();
}

我只是修改了一下它的函數名字,繼續執行make package-win32-zip,沒有報錯。這個函數在其它的地方也沒有被使用,我的項目是不需要npapi這個庫的,裁剪又很麻煩,我們只能叫它先通過了,才能執行接下來的操作。(原因可能是vlc-2.1.5和npapi-sdk的版本問題)。

5.終於要執行完畢了,在項目vlc-2.1.5目錄下生成一個win32的文件夾,這裏面會有一個文件夾叫做vlc-2.1.5是包含sdk的文件夾,當然還有我們需要的壓縮包vlc-2.1.5-win32.zip

6.在自己的windows 7下是可以運行的。但是移植到win7E上就好像有點問題,不報錯,就是不啓動,因爲產品的操作系統是經過裁剪的。

7.一個問題可能有很多種原因,當然要一個一個的排查:

1.》》》首先排查就是,系統是不是被攔截,是不是其它軟件給kill掉了(系統特有的)。

2.》》》第二就是交叉編譯是不是有問題呢,重新排查一下交叉編譯是不是漏下什麼東西?

3.》》》我看看是不是什麼文件沒有放進去,在win7E上的表現,就是沒有加載plugins裏面的插件,但是libvlc可以使用,這是爲什麼,後來發現libstdc++-6.dll、libwinpthread-1.dll兩個庫添加上去就可以用了,當然也不要忘記libgcc_s_sjlj-1.dll這個庫。。。。

8.項目可以運行在產品系統上了。一個使用vlc的核心代碼,定製 UI ,而且可以播放加密/解密的視頻播放器就進入測試階段了。。。。。。。。。。。。。。。。。。。。。。。。。














發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章