Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2123917
  • 博文数量: 229
  • 博客积分: 7217
  • 博客等级: 上校
  • 技术积分: 3224
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-19 17:23
个人简介

个人主页https://xugaoxiang.com,微信公众号: Dev_Club 或者搜索 程序员Club

文章分类

全部博文(229)

文章存档

2017年(1)

2016年(20)

2015年(23)

2013年(1)

2012年(23)

2011年(68)

2010年(62)

2009年(31)

分类: LINUX

2011-06-17 18:44:43

在C/C++程序里经常会调用到外部库函数,最常用的方法莫过于export LD_LIBRARY_PATH,不过使用它存在一些弊端,可能会影响到其它程序的运行。在经历的大项目中就遇到过,两个模块同时使用一外部动态库,而且版本还有差异,导致其中一模块出错,两模块是不同时期不同人员分别开发,修正起来费时费力。

对于上述问题,一个比较好的方法是在程序编译的时候加上参数-Wl,-rpath,指定编译好的程序在运行时动态库的目录。这种方法会将动态库路径写入到elf文件中去。

  -Wa,            Pass comma-separated on to the assembler
  -Wp,            Pass comma-separated on to the preprocessor
  -Wl,             Pass comma-separated on to the linker

可以用ldd命令查看可执行程序链接的动态库路径。
阅读(2989) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~