如何处理符号查找错误?

时间:2014-03-19 06:58:35

标签: makefile dynamic-linking automake dynamic-library

a.out call function fooA() using dlopen function to open libA.so.
fooA() is defined in libA.so  //dynamic library
fooA() call function fooB();
fooB() is defined in libB.a   //statistic library
fooB() call function fooC();
fooC() is defined in libC.so   //dynamic library
libA.so libB.a libC.so are not in the same folder.
****

当我编译它们时没关系。但我得到运行时错误,“符号查找错误:libA.so:未定义符号:fooC()”。我不知道为什么。如何解决动态库和统计库之间调用的函数问题?

对不起我的英语很差。我不知道我是否清楚地描述了我的问题。

1 个答案:

答案 0 :(得分:0)

你的二进制文件中有什么东西引入了libC.so吗? (直接或通过dlopen()RTLD_GLOBAL)?如果没有,那就是你的问题。

应该构建libA.so以链接到libC(而不是)。