为什么我们经过了链接阶段仍然错过了符号?
操作系统: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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
动态符号会在链接时进行检查,因此如果您在执行时丢失了某些内容,则任何动态库或其依赖项可能不在正确的路径中。
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.
共享库可能依赖于它们在运行时找不到的其他共享库。
确保您的环境设置正确,以便 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.