为什么我们通过链接阶段仍然错过符号?

时间:2009-11-07 19:05:20

标签: c++ linker symbols aix

操作系统:AIX 5.3。 编译器:xlC_r

构建系统是:“Unix Makefiles”

我们的应用程序使用几个静态( .a)库和几个共享( .so)库。 构建过程成功通过(我们确实得到了一些重复的符号警告)。 但是当我们尝试执行时,我们会得到符号缺失错误。

注意:我们没有使用dl在运行时加载共享库。

我们错过了什么吗?

为什么我们通过链接阶段仍然会错过符号?

2 个答案:

答案 0 :(得分:2)

动态符号会在链接时检查,因此如果您在执行时遗漏了某些内容,那么任何动态库或其依赖项可能都不在正确的路径中。

答案 1 :(得分:0)

共享库可能依赖于在运行时无法找到的其他共享库。

确保您的环境设置正确,以便dlopen()知道在哪里查找共享库。