日期:2014-05-16  浏览次数:20738 次

为什么编出的动态库不能使用?
我使用是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的链接开关