首页 > 解决方案 > QT + Android 无法调试错误:无法找到动态链接器断点函数

问题描述

完全没有想法,这里描述了这种情况以及大量日志:https ://forum.qt.io/topic/121687/breakpoints-not-hit-on-android/5

应用程序日志中唯一合理的错误消息似乎是:“无法找到动态链接器断点功能。”

Sysroot 集似乎已经尝试了很多东西。

这里https://www.fayewilliams.com/2013/01/31/gdb-unable-to-find-dynamic-linker-breakpoint-function/

我找到了与错误相关的信息,如果正确设置了 sysroot 路径,我该如何从这里继续

*更新:我重新安装了QT、Android SDK、QT Creator,还是一样。我已经卸载了整个 QT,希望删除所有的设置和设置(例如幸存的工具包)。在那上面花了一天半的时间。我收到一个新的 Hello World 项目的错误。这是同样的错误。想法?

标签: androidqtqt5

解决方案


在这里,我描述了对我有用的方法,希望没有其他人需要在提出解决方案之前经历我经历过的所有事情。它浪费了我将近 2 个工作日。第一个包括重新安装一切无济于事。第二个 => 生成一个全新的 Windows 10 VM 并安装所有东西(100GB QT 的东西等等)。

你猜怎么了?在新的 Windows 安装上,一切都是开箱即用的。

所以我花时间比较了所有的设置。

在故障系统上,CMake 工具设置为外部工具(是的,我也更新了 CMake),而工作系统上的 CMake 设置为 CMake(qt),而我认为真正不同的是 CMake 生成器设置。在工作系统上,它设置为 Generator: Ninja ,额外的 generator:none。

所以总结一下我是如何让它工作的: 在你的套件设置中:

  • 将 CMake 更改为 CMake(qt)
  • 发电机:忍者,额外的发电机:无。 在此处输入图像描述
  • 清除 sysroot 字段(是的)并在调试器设置中也将两个文本字段都留空 在此处输入图像描述

底线?我自己没有玩弄这些设置。曾经。没有其他人可以访问这台开发机器。我不知道是什么原因造成的。

另外我不知道为什么设置 sysroot 字段实际上会阻止它工作。如果我将 sysroot 或将生成器从 Ninja 设置为其他内容,则错误又回来了。

对其他开发人员来说还有一件事。请注意,现在有一个 Start Debugging => Debug without Deployment,它允许在新的 QT Creator 中在几秒钟内开始调试。旁注:GDB 20 秒没有响应的错误仍然存​​在。


推荐阅读