【发布时间】:2016-09-23 19:49:18
【问题描述】:
处理由其他人编写的相当大的代码块,我对 QT 不是很熟悉,但我最近的调试没有成功。
工作出色后,我添加了 3 行,然后将它们全部注释掉,并且在测试时发现了这两个错误的更多变体:
undefined reference to 'QObject::connectNotify(char const*)' (.rodata._ZTV15NumberWithUnits[_ZTV15NumberWithUnits]+0x60)
undefined reference to 'QWidget::x11Event(_XEvent*) (.rodata._ZTV15NumberWithUnits[_ZTV15NumberWithUnits]+0x160)
我在想可能有一些库或其他构建错误,或者我需要进行文件清理,但我被卡住了。
在搜索和尝试多件事后,我找到了几个类似的答案,例如this one,我正在尝试实现添加 -lqt 语句或修复 qmake。
关于如何执行此操作或其他尝试的建议?
【问题讨论】:
-
删除build文件夹并重建项目...
-
哇,简单的修复工作。我还有其他错误,我认为目前无关。在 QT 环境中是否经常发生这种情况?知道为什么/什么时候可以看到吗?
-
这是因为 makefile - qmake 的输出 - 取决于 qmake 扫描输入的所有文件,但如果 qmake 每次都必须重新读取它们中的任何一个,它会减慢构建速度改变了。所以它不会那样做。这可以通过稍微重新架构 qmake 来解决,但鉴于 qmake 作为一种工具已处于生命的尽头,因此几乎没有这样做的动力。如果您想避免该问题,请改用
qbs(Qt 构建系统)或cmake。