做了一个浏览器插件,需要编译为 abcPlugins.so , 这个.so需要调用另外一个业务库 defLib.so里面的函数。
把abcPlugins.so替换到目标板上,浏览器进程启动不起来。
1. 查找浏览器进程启动过程错误
1)export LD_DEBUG=files
2)启动浏览器进程脚本来启动浏览器进程
从log中看到 这个错误 error: symbol lookup error: undefined symbol
defLib.so库提供的一个函数 出现undefined symbol
2. 查看abcPlugins.so defLib.so是否包含这个函数名
1)nm -D abcPlugins.so | less
这两个库中都包含这个函数名
3)查看abcPlugins.so是否链接了defLib.so
ldd abcPlugins.so (出现了 not a dynamic executable ldd 命令不好使)
换readelf试试
readelf -d abcPlugins.so
从其中看到确实没有依赖defLib.so
4)在Makefile中把defLib.so 加上
readelf -d abcPlugins.so 就看到依赖defLib.so