今天在单位的机器上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.重新运行程序, 成功。
阅读(16692) | 评论(0) | 转发(1) |