如何在Windows上使用QtCreator来构建和调试Linux应用程序?

时间:2016-06-16 10:10:36

标签: c++ linux qt-creator cross-compiling remote-debugging

我是习惯于Visual Studio社区的Windows开发人员。现在我开始在嵌入式设备(Raspberry Pi,C.H.I.P)和PC上开发Linux。

我发现Visual Studio有两种为Linux开发的选项:

  • VisualGDB - 用于交叉编译和远程调试的Visual Studio扩展,但对于我目前的预算来说成本太高

  • 全新的Microsoft扩展:用于物联网开发的Visual C ++和用于Linux开发的Visual C ++,但它们有问题,它们复制每个构建的每个文件,并且它们很难配置“Linux方式”(没有完全制作) / cmake支持,必须在远程机器上使用绝对包含路径)并且Intellisense也不能可靠地工作。

所以我准备尝试一些比Visual Studio更少限制的东西,但质量和工作流程有些相似,而我目前最好的选择似乎是QtCreator。

如何从在Windows机器上运行的QtCreator实现Linux的构建

使用QtCreator支持哪种方法或更好地工作(提供自动完成和调试的便利性) - 交叉编译&复制二进制文件并启动GDB,或远程构建项目(但如果我在Samba共享文件夹上构建,可以选择不复制文件)?

1 个答案:

答案 0 :(得分:1)

  

支持哪种方法或更好地工作(提供自动完成功能   和QtCreator

的调试方便

鉴于你说交叉工具链不是问题,我选择的最大参数是项目的大小和编译时间。如果它是一个你可以在几分钟内交叉构建的项目,我会选择本地选项。

关于交叉编译的先决条件的一些注意事项: 您应该有一个交叉编译设备的sysroot,链接器将从中获取所有未动态链接的适当库。

远程调试时,我发现以下是最佳实践。你必须有两个调试应用程序,gdb和gdbserver。当您在主机上运行gdb时,Gdbserver在嵌入式设备上运行。为了能够在运行时单步执行代码,您需要使用调试符号进行交叉编译。如果设备有足够的内存,则可以在设备上部署带有调试符号的整个二进制文件。

这是一个很大的话题:)我建议你提问子问题,这样我们就可以逐步形成答案。