linux 动态加载so调用外部so,运行时出现undefined symbol

        linux 应用程序application中动态加载 libA.so, 而libA.so调用了libB.so中的函数funcB();

application运行时出现undefined symbol: funcB

用ldd -r application,发现确实没有加载动态链接库libB.so。

用-lB编译选项,编译后发现仍然没有加载动态链接库libB.so。

因为application在编译时确实与动态链接库libB.so没有关系。

于是在application中添加函数testFuncB(),如下:

    void testFuncB(){

            return funcB();

}

再次编译application,运行ldd -r application,已经加载了动态链接库libB.so。

运行,不再出现undefined symbol: funcB

    

你可能感兴趣的:(Linux)