首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

为何编出的动态库不能使用

2012-12-31 
为什么编出的动态库不能使用?我使用是ubuntu 10.10,使用gcc -fPIC -c my_func.cgcc -shared -o libmylib.s

为什么编出的动态库不能使用?
我使用是ubuntu 10.10,使用
  gcc -fPIC -c my_func.c
  gcc -shared -o libmylib.so my_func.o
生成了libmylib.so,在同一目录下,我又写了一个测试代码,就是调用动态库中定义的一个函数,结果运行时总是提示:
       “cannot open shared object file: no such file or directory”
奇怪,明明有这个共享库文件,为什么还提示不在呢?
[解决办法]
.so放置的在哪个目录下? 你是如何调用的dlopen还是-l链接?
[解决办法]
楼主是对程序运行时,链接动态库的过程不清楚。
请搜索ld.so.conf和LD_LIBRARY_PATH

放么把so文件放到/usr/lib,/usr/local/lib,/lib中
要么设置LD_LIBRARY_PATH为你的so放的位置
要么设置ld.so.conf添加上你的so放的位置
[解决办法]
如果不会设置path
那么就使用-Wl,rpath的链接开关

热点排行