前面说了在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:
看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 ,而且可以播放加密/解密的视频播放器就进入测试阶段了。。。。。。。。。。。。。。。。。。。。。。。。。