首页 > *nix应用编程, Google开源, 浏览器 > Linux下试试谷歌PPAPI插件编译和初试

Linux下试试谷歌PPAPI插件编译和初试

2014年7月20日 发表评论 阅读评论 7,185 次浏览

环境:
lenky@lenky-Local:~$ uname -a
Linux lenky-Local 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
1,首先,搞到这两个库文件:libppapi_cpp.a和libppapi_cpp_objects.a
我是通过编译chromium得到的,编译好chromium后自动生成了这两个库文件,应该还可以直接编译ppapi来获得:

2,要直接编译chromium源码里自带的ppapi插件很简单,这样执行就可以:

lenky@lenky-Local:~/chromium/38.0.2096.12/src$ ninja -C out/Release ppapi_example_ime
ninja: Entering directory `out/Release'
[2/2] SOLINK lib/libppapi_example_ime.so
lenky@lenky-Local:~/chromium/38.0.2096.12/src$ ninja -C out/Release ppapi_example_input
ninja: Entering directory `out/Release'
[2/2] SOLINK lib/libppapi_example_input.so

3,直接使用chromium源码里的ppapi实例,比如ime:/home/lenky/chromium/38.0.2096.12/src/ppapi/examples/ime

lenky@lenky-Local:~/chromium/38.0.2096.12/src/ppapi/examples/ime$ ls
ime.cc  ime.html

拷贝到一个新目录:/home/lenky/chromium/ppapi/lenky/ime

lenky@lenky-Local:~/chromium/ppapi/lenky/ime$ ls
ime.cc  ime.html  Makefile
lenky@lenky-UK:~/chromium/ppapi/lenky/ime$ cat Makefile 
libppapi_example-ime.so:example-ime.o
	g++ -shared -L/home/lenky/chromium/38.0.2096.12/src/out/Release/obj/ppapi/ -pthread -Wl,-z,noexecstack -Wl,-soname=libppapi_example-ime.so -o libppapi_example-ime.so -Wl,--start-group example-ime.o -lppapi_cpp -lppapi_cpp_objects -Wl,--end-group 

example-ime.o:
	g++  '-DNO_HEAPCHECKER' '-DCHROMIUM_BUILD' '-DENABLE_REMOTING=1' '-DENABLE_GPU=1' '-D__STDC_FORMAT_MACROS' '-DDYNAMIC_ANNOTATIONS_ENABLED=1' '-D_DEBUG' -I/home/lenky/chromium/38.0.2096.12/src/ -Werror -pthread -fno-exceptions -Wall -Wno-unused-parameter -Wno-missing-field-initializers -D_FILE_OFFSET_BITS=64 -fvisibility=hidden -pipe -fPIC -fno-strict-aliasing -fPIC -fvisibility=hidden -fvisibility=hidden -O0 -g -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -MMD -MF example-ime.o.d.raw -c -o example-ime.o ime.cc

clean:
	rm -f example-ime.o.d.raw example-ime.o libppapi_example-ime.so

run:
	/home/lenky/chromium/38.0.2096.12/src/out/Release/chrome -d --register-pepper-plugins="/home/lenky/chromium/ppapi/lenky/ime/libppapi_example-ime.so;application/x-ppapi-example-ime" file:///home/lenky/chromium/ppapi/lenky/ime/ime.html

4,Makefile文件准备好了,如上所示,直接make编译,make run执行,嗯,效果很挫,不知道为撒控件可以打字,但却没有显示出来,漏了撒?

5,快速测试了一下其他实例,就测出video_decode可以跑出一个很风骚的图,其他的貌似都不行,难道是因为video_decode用的是Graphics3D绘图?

lenky@lenky-Local:~/chromium/38.0.2096.12/src$ ninja -C out/Release ppapi_example_video_decode
ninja: Entering directory `out/Release'
ninja: no work to do.
lenky@lenky-Local:~/chromium/38.0.2096.12/src$ 
lenky@lenky-Local:~/chromium/38.0.2096.12/src$ out/Release/chrome-wrapper --register-pepper-plugins="./out/Release/lib/libppapi_example_video_decode.so;application/x-ppapi-example-video-decode"   ./ppapi/examples/video_decode/video_decode.html

PS:
在命令行里加上: –single-process –user-data-dir=/tmp
然后ps aux | grep chromium-browser查看有一个type为ppapi的进程,使用gdb -p 6548就可以attach上去进行插件调试:
lenky 6548 0.3 0.5 1170776 18224 pts/0 Sl+ 16:33 0:00 /usr/lib/chromium-browser/chromium-browser –type=ppapi –channel=6492.4.1760880143 –ppapi-flash-args –lang=zh-CN –user-data-dir=/tmp

转载请保留地址:http://www.lenky.info/archives/2014/07/2417http://lenky.info/?p=2417


备注:如无特殊说明,文章内容均出自Lenky个人的真实理解而并非存心妄自揣测来故意愚人耳目。由于个人水平有限,虽力求内容正确无误,但仍然难免出错,请勿见怪,如果可以则请留言告之,并欢迎来讨论。另外值得说明的是,Lenky的部分文章以及部分内容参考借鉴了网络上各位网友的热心分享,特别是一些带有完全参考的文章,其后附带的链接内容也许更直接、更丰富,而我只是做了一下归纳&转述,在此也一并表示感谢。关于本站的所有技术文章,欢迎转载,但请遵从CC创作共享协议,而一些私人性质较强的心情随笔,建议不要转载。

法律:根据最新颁布的《信息网络传播权保护条例》,如果您认为本文章的任何内容侵犯了您的权利,请以Email或书面等方式告知,本站将及时删除相关内容或链接。

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.