您的位置:首页 > 运维架构 > Linux

linux下关于调用动态库的一些总结

2017-03-02 17:58 316 查看
  自己要编译动态库,可是需要调用静态库,自己这块还没怎么没做过,捣鼓了两天,也终于解决了。

  使用编译好的动态库的时候,老是提示未定义的 引用,问题肯定出现在了链接动态库的时候。自己要链接的是live555的静态库。在live555文件包config.linux中,在COMPILE_OPTS后面添加 -shared -fPIC,这样,编译好的静态库才可以在编译动态库的时候,链接进去,否则,提示失败。检查是否把静态库添加进去的时候,可以使用ld指令查看。如:ld libOnvif_Live555_Client_SDK.so。如果没有链接进去静态库,则会显示出”未定义的引用“这样的错误。

  链接好以后,又有出现问题了。在编译测试程序的时候,提示没有找到刚刚编译的动态库,可是自己明明添加了动态库的路径,就是找不到,真是郁闷了。自己在网上查询到通过添加动态库路径的方法解决未找到动态库的问题,也确实解决了。

在.bashrc中,添加export LD_LIBRARY_PATH="/home/lichen/win8.1/Onvif_Live555_Client_SDK:$LD_LIBRARY_PATH",这样,添加上了动态库的路径。echo $LD_LIBRARY_PATH,查看当下的库路径,确实添加上了。这样,测试程序编译通过了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: