Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1002700
  • 博文数量: 150
  • 博客积分: 3017
  • 博客等级: 少校
  • 技术积分: 3829
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-19 14:40
个人简介

Now in Baidu WISE team

文章分类

全部博文(150)

文章存档

2014年(8)

2013年(31)

2012年(111)

分类: C/C++

2012-08-27 11:29:32

今天在单位的机器上fork了一份家里写的代码下来,昨天在家中已经将工程和环境脱离了,今天在单位,可以编译起来,但是运行时出现了一个链接的错误
./client: error while loading shared libraries: libSDL_draw-1.2.so.0: cannot open shared object file: No such file or directory

虽然程序编译时是优先使用指定的库link,但是运行时,动态库还是从系统的位置找的.
因为想避免安装这个库,所需要将工程中动态库的地址手动加入到系统中

1.查看程序的库依赖关系.看到SDL_draw是找不到了
$ldd client
...
libSDL_draw-1.2.so.0 => not found
...

2.在/etc/ld.so.conf.d/上新建动态库相应的文件配置文件
这里,我为项目建立了RStock.conf
添加上动态库的绝对路径:
/home/renywang/Desktop/RStock/lib

3.重建/etc/ld.so.cache
$sudo ldconfig

4.重新运行程序, 成功。
阅读(16681) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~