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,查看当下的库路径,确实添加上了。这样,测试程序编译通过了。
使用编译好的动态库的时候,老是提示未定义的 引用,问题肯定出现在了链接动态库的时候。自己要链接的是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,查看当下的库路径,确实添加上了。这样,测试程序编译通过了。
相关文章推荐
- 项目q总结:关于Linux性能问题的一些思考
- 一些关于linux的总结
- linux关于vim文件编辑器的一些常用指令的总结
- 关于java jni调用c++动态库的一些问题及解决方法
- 关于Java对相对目录的文件读写和调用方法的一些总结
- 关于Linux中动态库的一些学习
- 关于ASPCMS标签调用的一些总结
- 关于bash与sh的话题(限于一般linux),以下个人的一些总结及理解,有理解错误的地方还望指点
- linux下,一些关于动态库的问题:
- 关于jquery 的ajax调用的一些总结(记录插入数据库成功,但ajax返回false)
- Linux 调用动态库(.SO文件)总结 (特指调用so文件中的函数)
- 今日收获总结(关于存储过程时间查询的一些方法以及字段截取的函数及调用示例)
- Linux下关于动态库调用动态库及编译需要注意的事项
- 关于工作中linux命令的一些总结
- Linux 调用动态库(.SO文件)总结
- Linux 调用动态库(.SO文件)总结
- 最近在ArcGIS Engine开发中关于调用gp工具过程出现COM 组件的调用返回了错误 HRESULT E_FAIL 错误的解决方法 和 学习oracle中遇到的一些问题总结
- 关于Linux安装python画图遇到的一些问题总结