请教下:用c++写了两个动态库liba.so, libb.so 其中liba.so使用到了libb.so中的函数。 在生成liba.so文件的mk文件中以loacl_shared_library形式加载了libb.so 最后将liba.so加载到工程中,为何日志中显示找不到libb.so文件,造成liba.so加载失败。但是将libb库制作成静态库如libb.a然后以loacl_static_library形式加载,最后生成的a.so就可以加载到工程中,有遇到过这种情况的没,指教下,谢谢。难道动态库中只能加载系统的动态库,自己生成的动态库不能加载吗?

解决方案 »

  1.   

    动态库的LOCAL_C_INCLUDES加了没?
      

  2.   

    自己写的动态库你必须将其path加入到系统的LD_LIBRARY_PATH 中。或者写到/etc/ld.so.conf中.然后你调用必然不会出问题了。动态库不指定路径的话,是只搜索系统默认的两个lib路径下的,而静态库默认是搜索当前目录的。所以,你懂的。
      

  3.   


    LD_LIBRARY_PATH --》这个是个环境变量。上面没说明白。