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

发布于 2024-08-10 14:07:11 字数 243 浏览 11 评论 0原文

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

构建系统是:“Unix Makefiles”

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

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

我们是否遗漏了什么?

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

operating system: AIX 5.3.
compiler: xlC_r

build system is: "Unix Makefiles"

our application uses several static (.a) libs and several shared (.so) libs.
the build process pass successfully (we do get some duplicate symbol warnings).
but when we try to execute we are getting symbol missing errors.

Note: we are not using dl to load shared libs at runtime.

Are we missing something ?

How come we pass the linking stage and still miss symbols ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

七婞 2024-08-17 14:07:11

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

Dynamic symbols get checked on linking time, so if you're missing something on execution, then any of the dynamic libs or their dependencies may not be in the proper path.

国产ˉ祖宗 2024-08-17 14:07:11

共享库可能依赖于它们在运行时找不到的其他共享库。

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

The shared libs may depend on other sharedlibs that they can't find at runtime.

Make sure your environment is set up correctly so that dlopen() knows where to look for othere shared libs.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文