经过大量研究后,我在Windows 10以及Raspberry pi 2上运行QT 5.5。我在Windows中的QT Creator中进行开发,然后部署到Pi。它在Windows和pi上运行良好。现在这是问题所在。我为交叉编译的工具链中的gdb版本是版本7.1。 QT 5.5 Creator需要gdb 7.5或更高版本。我想从Windows端远程调试QT Creator中的pi。但我不能,因为版本太旧了。
这是我有点像菜鸟的地方。有没有办法在Windows版本(.exe)和交叉编译版本上用更新的版本替换gdb?它会影响工具链的其余部分吗?如果我必须交叉编译gdb,那么我真的不知道该怎么做。
任何帮助都会受到赞赏,可能是由更多的人而不仅仅是我。谢谢!
更新:经过更多研究后,我发现PC上的gdb已经过时(v7.1)并且没有使用python脚本支持构建。 pi上的gdb是7.7.1(很好)并且启用了python支持。显然它是PC端。所以我试图找到Windows的二进制文件,但是他们要么是错误的目标/错误的主机,要么没有启用python。然后我发现启用了python但不是正确目标的二进制文件。所以我下载了gdb 7.7.1的源文件,我自己用我的电脑上的mingw make构建了它。由于缺少python库,它不会运行。更多的研究和我发现你需要定义PYTHONHOME和PYTHONPATH环境变量。这最终修复了gdb,它在启用python脚本的情况下运行。
然后我尝试在QT中调试。启动了远程调试会话,gdbserver确实在pi上启动,QT应用程序也在pi上启动并等待。大!但随后QT Creator打印出“调试失败”,这就是它的结束。
为什么这么难以获得gdb交叉调试?我是如此接近,有没有办法找出错误是什么以及为什么QT仍然不满意?诅咒QT Creator !!