phantomshuttle 博客
使用 VS+visualgdb 交叉编译器构建Linux程序
https://phantomshuttle.com/wp-content/uploads/2024/05/image-2.png

本教程介绍如何在一台 Linux 机器上使用交叉编译器开发和调试构建的应用程序,然后将其部署到另一台 Linux 机器上。及在windows平台上使用 Visual Studio+VisualGDB连接Linux环境编译最后部署到嵌入式Linux机器上运行以及调试。

我们将展示如何配置 VisualGDB 在 x86 Linux 机器上构建一个简单的 Raspberry Pi 应用程序,将其部署到 Raspberry Pi 并在那里进行调试。在开始之前,请安装 VisualGDB 并确保您的 x86 Linux 机器具有arm-linux-ghueabihf交叉编译器和匹配的 gdb。

1.启动 Visual Studio 并打开 VisualGDB Linux 项目向导:

https://phantomshuttle.com/wp-content/uploads/2024/05/image-3.png

2.输入项目的名称和位置:

https://phantomshuttle.com/wp-content/uploads/2024/05/image-4.png

3.继续使用默认的“创建新项目 -> 应用程序”设置。对于大多数新项目,我们建议使用高级 CMake 项目子系统:

https://phantomshuttle.com/wp-content/uploads/2024/05/image-5.png

4.在下一页上选择“通过网络在 Linux 下构建项目”,并选择具有交叉工具链的构建计算机。然后点击“通过定位 gdb 手动指定工具链”:

https://phantomshuttle.com/wp-content/uploads/2024/05/image-6.png

5.VisualGDB 将询问 gdb 的位置。找到它并点击“打开”。在此示例中,gdb 二进制文件名为arm-linux-gnueabihf-gdb,位于/usr/bin中:

https://phantomshuttle.com/wp-content/uploads/2024/05/image-7-1024x706.png

请注意,如果您通过包管理器安装了交叉工具链(例如apt install gcc-arm-linux-gnueabihfapt install g++-arm-linux-gnueabihf),它可能不包含 gdb 可执行文件。然后,您可以通过“ apt install gdb-multiarch ”安装它,并通过“ sudo ln -s /usr/bin/gdb-multiarch /usr/bin/arm-linux-gnueabihf-gdb ”创建指向它的符号链接。

6.启用“将项目部署”到另一台 Linux 计算机复选框,然后在“部署计算机”字段中选择您的 Raspberry Pi:

https://phantomshuttle.com/wp-content/uploads/2024/05/image-8.png

7.在下一页上,选择 VisualGDB 应在 Linux 机器上存储源文件的位置。最简单的方法是继续使用默认设置,让 VisualGDB 管理源文件位置:

https://phantomshuttle.com/wp-content/uploads/2024/05/image-9.png

8.按“完成”生成您的项目。VisualGDB 将自动检测交叉工具链使用的包含目录并将它们缓存在 Windows 机器上以设置 IntelilSense:

https://phantomshuttle.com/wp-content/uploads/2024/05/image-10.png

9.现在我们将稍微修改一下项目,以便实际打印运行它的机器的主机名。将主文件的内容替换为以下内容:

#include <iostream>
#include <unistd.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    char hostname[1024] = { 0, };
    gethostname(hostname, sizeof(hostname));
    cout << "The host name is " << hostname << endl;    //<================= Put a breakpoint here
    return 0;
}

然后按 F5 构建您的项目并开始调试它:记得打断点 ,要不然运行完就退出了。

https://phantomshuttle.com/wp-content/uploads/2024/05/image-11-1024x706.png
您将看到项目已构建、部署并且主机名与部署机器的名称匹配。

10.有时,构建机器无法连接到部署机器,因为它无法解析主机名,或者需要使用不同的 IP 地址。您可以通过在调试设置页面上打开 VisualGDB 项目属性并将目标选择命令切换为“ target remote <IP>:<port> ”来覆盖此问题。确保将“调试启动模式”设置为“使用‘继续’命令”:您可以通过将 GDB 会话窗口切换到“所有 GDB 交互”或“来自 GDB 的原始输出”模式,然后搜索“target”来

https://phantomshuttle.com/wp-content/uploads/2024/05/image-12-1024x719.png

仔细检查 VisualGDB 用于连接目标的命令:

https://phantomshuttle.com/wp-content/uploads/2024/05/image-13-1024x706.png
没有标签
首页      未分类      使用 VS+visualgdb 交叉编译器构建Linux程序

发表回复

textsms
account_circle
email

phantomshuttle 博客

使用 VS+visualgdb 交叉编译器构建Linux程序
本教程介绍如何在一台 Linux 机器上使用交叉编译器开发和调试构建的应用程序,然后将其部署到另一台 Linux 机器上。及在windows平台上使用 Visual Studio+VisualGDB连接Linux环境编译最后…
扫描二维码继续阅读
2024-05-26