c++ - 如何在 Windows 上使用 QtCreator 为 Linux 构建和调试应用程序?

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

我是熟悉 Visual Studio Community 的 Windows 开发人员。现在我开始在嵌入式设备(Raspberry Pi、C.H.I.P)和 PC 上开发 Linux。

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

  • VisualGDB - 用于交叉编译和远程调试的 Visual Studio 扩展,但它对我当前的预算来说太贵了

  • 全新的 Microsoft 扩展:Visual C++ for IoT Development 和 Visual C++ for Linux Development,但它们有问题,它们会在每次构建时复制每个文件,并且很难配置“Linux 方式”(没有完整的 make/cmake 支持,必须在远程计算机上使用绝对包含路径)并且 Intellisense 不能可靠地工作。

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

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

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

最佳答案

Which approach is supported or works better (provides auto-complete and debugging conveniences) with QtCreator

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

交叉编译时先决条件的几点说明: 您应该拥有设备的 sysroot 交叉编译,链接器将从中获取所有未动态链接的适当库。

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

这是一个很大的话题 :) 我建议您提出子问题,以便我们逐步形成答案。

关于c++ - 如何在 Windows 上使用 QtCreator 为 Linux 构建和调试应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37856163/

相关文章:

c++ - 将每个内存分配大小增加固定字节数将如何影响堆碎片?

c++ - 嵌套结构和数组 C++

c - 如何在 Qt Creator 中为 Clang 静态分析器设置语言标准 (-std)

qt - Qt 的最佳敏捷工具链是什么?

c++ - 在使用 Visual Studio 2013 64 位编译器编译的 CMake 项目中使用 ttmath

C++局部变量改变值

c++ - 如何从 boost::spirit::lex 标记确定行/列号?

c - 在 linux 内核中是否有任何标准来确定是通过内联还是通过宏来实现功能?

linux - sudoers 文件中的命令?

linux - $ ssh -G 2>&1 | grep -e 非法 -e 未知 >/dev/null && echo "Sys­tem clean"||回显 "Sys­tem in­fec­ted"