【问题标题】:symbol lookup error: undefined symbol: _ZN7QPixmap16fromImageInPlaceER6QImage6QFlagsIN2Qt19ImageConversionFlagEE符号查找错误:未定义符号:_ZN7QPixmap16fromImageInPlaceER6QImage6QFlagsIN2Qt19ImageConversionFlagEE
【发布时间】:2015-09-19 14:48:05
【问题描述】:

下午好,我正在 Linux 上用 Qt C++ 创建一个项目,我正在创建的计算机工作正常,但是从计算机到另一台计算机的可执行文件在运行时告诉我以下错误:

./Agenda:符号查找错误:./Agenda:未定义符号:_ZN7QPixmap16fromImageInPlaceER6QImage6QFlagsIN2Qt19ImageConversionFlagEE 有什么想法,非常感谢。

【问题讨论】:

  • 符号 QPixmap::fromImageInPlace(QImage&, QFlags<Qt::ImageConversionFlag>) 丢失。计算机可能没有您的应用程序所需的正确版本的 qt 库?
  • 您好,感谢您的回答,该程序是使用 Qt 5.4.1 创建的,两台计算机都有 Qt4 库和 QT5。谢谢。

标签: qt runtime-error qpixmap


【解决方案1】:

我遇到了同样的问题。就我而言,头文件和源文件中的方法签名略有不同(缺少 const 关键字)。编译器没有抛出错误,但程序在运行时崩溃并出现与您类似的错误。

修复签名并在之后进行干净的重新编译解决了问题。

这也可能意味着该符号已声明但未实现 - 例如当编译器没有包含所有源文件时。

或者它可能是由未实现的非纯虚函数引起的(例如,如果我忘记在接口中将它们设为纯虚函数,编译器仍然会寻找实现):请参阅this answer

要检查符号是否在您的共享库或二进制文件中定义,您可以运行以下命令:

nm -C <executable/shared lib> | grep ImageConversionFlag

其中“ImageConversionFlag”是错误消息中缺失符号的子字符串。

【讨论】:

    猜你喜欢
    • 2012-06-19
    • 2017-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-02
    • 2017-05-04
    • 1970-01-01
    • 2021-11-14
    相关资源
    最近更新 更多