简体   繁体   English

动态链接库的问题

[英]problems with dynamically linked libraries

Problem: 问题:
When I try to open some applications I get errors from the linker like this: 当我尝试打开某些应用程序时,我从链接器中收到如下错误:

/usr/lib/x86_64-linux-gnu/libpoppler-qt5.so.1: undefined symbol: _ZN6QDebugD1Ev

Some applications affected are 一些受影响的应用是

  • texstudio shows texstudio表演
    /usr/lib/x86_64-linux-gnu/libpoppler-qt5.so.1: undefined symbol: _ZN6QDebugD1Ev
  • IPython's qtconsole shows IPython的qtconsole展示
    /usr/lib/python3.5/site-packages/PyQt5/QtCore.so: undefined symbol: _ZNK12QStorageInfo11displayNameEv
  • konsole (KDE's terminal emulator - I'm using Unity though) shows /usr/lib/x86_64-linux-gnu/libKF5ItemViews.so.5: undefined symbol: ... konsole(KDE的终端仿真器-虽然我正在使用Unity)显示/usr/lib/x86_64-linux-gnu/libKF5ItemViews.so.5: undefined symbol: ...
  • granatier (a KDE game), KSysguard and KAddressbook also show errors in KF5 libraries granatier(KDE游戏),KSysguard和KAddressbook也显示KF5库中的错误
  • VLC seems to be affected too since it says there is something wrong with Qt 4 (see below). VLC似乎也受到影响,因为它说Qt 4有问题(请参阅下文)。 However it doesn't ecplicitely say it's a linking problem. 但是,它并没有明确地说这是一个链接问题。

It seems to be a problem with dynamic linking and I my guess would be that the problem is in the libraries 动态链接似乎有问题,我想问题可能出在库中

Qt t
all of this errors seem to come from Qt linked libraries ("Qt" appears in most filenames and most symbol names). 所有这些错误似乎都来自Qt链接库(“ Qt”出现在大多数文件名和大多数符号名称中)。 AFAIK KDE ist baed on Qt, which would explain why all KDE applications fail. AFAIK KDE ist基于Qt,可以解释为什么所有KDE应用程序都会失败。
It seems to affect both Qt 4 and 5 它似乎同时影响Qt 4和5

I also had a similar problem with ssl but it went away eventually (maybe an update). 对ssl也有类似的问题,但最终消失了(也许是更新)。

I'm using ld 2.25 我正在使用ld 2.25

Why I'm asking here 我为什么在这里问
I realize that my Question is not about programming. 我意识到我的问题与编程无关。 The help center states that 帮助中心指出

Questions about general computing hardware and software are off-topic for Stack Overflow unless they directly involve tools used primarily for programming. 除非它们直接涉及主要用于编程的工具,否则有关通用计算硬件和软件的问题对于Stack Overflow来说是无关紧要的。

This seems to be a problem with the linker / the dynamic libraries so I would say it kind of involves programming tools. 这似乎是链接器/动态库的问题,所以我想说它涉及编程工具。
If you disagree please spare the downvotes and write a comment explaining you POV. 如果您不同意,请保留否决票并写评论以解释您的观点。

Okay, this kind of problems happen a lot if you switch to 'unstable'. 好吧,如果您切换到“不稳定”状态,这类问题就会发生很多。

What you need to do is downgrade all of your packages back to 'stable'. 您需要做的是将所有软件包降级到“稳定”状态。 Modifying sources.list wouldn't be enough, you also need to change priorities. 修改sources.list是不够的,您还需要更改优先级。

Look this thread: https://unix.stackexchange.com/questions/117122/how-to-get-back-from-testing-to-stable-kernel-downgrade 看一下这个线程: https : //unix.stackexchange.com/questions/117122/how-to-get-back-from-testing-to-stable-kernel-downgrade

Ok, so it seems the source of the problem was that I had Qt linked libraries like libQt5Core.so.5 in /usr/local/lib . 好的,所以问题的根源似乎是我在/usr/local/lib有Qt链接的库,例如libQt5Core.so.5 When I remove them everything worked again. 当我删除它们时,一切又恢复了。
I've read that the package manager doesn't put any libraries there, so it was probably me who did a dumb mistake. 我读过,包管理器没有在其中放置任何库,因此可能是我犯了一个愚蠢的错误。 It looks like it wasn't a programming problem at all in the end. 看起来这根本不是编程问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用动态链接库管理堆 - Managing heap with dynamically linked libraries 动态链接库中如何处理“外部”变量? - How 'extern' variables are handled in dynamically linked libraries? 将动态链接库合并为一个静态链接库 - Combine Dynamically Linked Libraries into one Statically Linked Library 静态链接的 libcurl 是否仍然使用动态链接的库? - Does a statically linked libcurl still use dynamically linked libraries? 动态链接库中静态变量的行为(C / C ++) - Behaviour of static variables in dynamically linked libraries (C/C++) 在运行时加载的C ++动态链接库-Poco / qmake - C++ Dynamically Linked Libraries loaded at runtime - Poco / qmake 静态链接到 VC++ 运行时,同时包含动态链接到它的静态库 - Linking to the VC++ runtime statically while including static libraries that linked to it dynamically 动态链接库上的 g++ 用户定义的全局 new 和 delete 运算符 - g++ user-defined global new and delete operators on dynamically linked libraries qemu用户在运行动态链接的可执行文件时找不到共享库 - qemu-user cannot find shared libraries when run a dynamically linked executable 在运行时,如何通过编程确定动态链接库使用了多少内存? - At runtime, how can I determine programmatically how much memory is used by dynamically-linked libraries?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM