c – 运行时的符号查找错误,而不是加载时间
我有一个应用程序,它使用.so共享库中的类Foo.我遇到了一个问题,在运行时它会打印出来
现在,事实证明,unmangled符号是Foo类的构造函数,问题只是加载了一个旧版本的库,它还没有包含Foo. 我的问题不是解决错误(显然是使用正确的库),而是为什么它出现在运行时而不是在加载/启动时. 导致错误的代码行只是实例化了一个类Foo的对象,所以我在这里没有使用像dlopen这样的东西,至少没有明确/我的知识. 相反,如果我从加载搜索路径中删除整个库,我在启动时会收到此错误:
当错误版本的gcc / libstdc在加载路径上时,starup上也会出现错误:
这种“快速失败”行为更令人满意,我不想先运行我的应用程序很长一段时间,直到我终于意识到它使用了错误的库. 解决方法
从ld.so的手册页:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |