求教Linux中动态库(或共享库, *.so文件)的三个小问题

Brierbird 2004-08-09 09:21:19
1. 如何查看so文件的导出信息(包括导出函数和C++导出类)?
2. 能否合并两个不冲突的so文件?如果能,应该怎么进行?
3. 自己生成的so文件,在make install后,安装到了/usr/local/lib中,这时编译一个调用so的程序(如testmylib),link时用了-L路径参数,成功。但是一运行testmylib,就会提示找不着mylib??? 这时候除非我设置环境变量(增加路径信息),或者将so文件全部复制到/usr/lib中,才能正常运行。
请问,为什么link时能成,但运行就不行了?

请指教,谢谢!
...全文
300 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Brierbird 2004-08-11
  • 打赏
  • 举报
回复
To toxyboy(最近有点闲) : 你说的是ld命令,还是gcc/g++的时候用-ld 参数?谢谢
toxyboy 2004-08-11
  • 打赏
  • 举报
回复
3:使用-ld命令把你的库加载到系统自动寻找库文件的cache文件里面
kenryHuang 2004-08-10
  • 打赏
  • 举报
回复
1.用用objdump工具。gcc带的。
2。不清楚
3。要设置一下LD_LIBRARY_PATH吧。
pacman2000 2004-08-10
  • 打赏
  • 举报
回复
1. nm也可以查看
2. 好像是不行的!
3. 编译连接的时候指明,只是在编译时起作用,运行时要另外指明的。设LD_LIBRARY_PATH就好了。
tianxiangyuan 2004-08-10
  • 打赏
  • 举报
回复
http://www.csdn.net/Develop/read_article.asp?id=23194

也许有用,不妨看看
mahongxi 2004-08-09
  • 打赏
  • 举报
回复
http://www.linux.com/howtos/Program-Library-HOWTO/shared-libraries.shtml

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧