本文主要介绍通过Visual Studio对树莓派进行交叉编译的方法。
1 环境
宿主机:
系统:Windows10
开发平台:Visual Studio 2022 (我用的是社区版)
VisualGDB:VisualGDB - Download (我下的试用版本)
GNU工具链: Prebuilt GNU toolchain for Raspberry Pi (我下的raspberry-gcc10.2.1-r2.exe)
目标机:
树莓派板子型号:树莓派4B
树莓派系统:Raspberry Pi OS
2 环境准备
2.1 宿主机环境准备
2.1.1 在windows系统上安装Visual Studio 2022,一路下一步;
2.1.2 双击安装VisualGDB,一路下一步;
2.1.3 双击安装raspberry-gcc10.2.1-r2.exe, 报错,如下图所示,
针对该问题进行了排查(如果你能直接运行一路下一步就不用排查了),试了很多方法,网上也查了很多资料,没头绪。后来凭直觉直接将该软件拖到VS2022中,单击运行,发现能进行下去,一路下一步,安装完成。
2.2 目标机环境准备
2.2.1 安装PI OS(方法在网上有很多,自己找);
2.3 连接
将树莓派接入无线网,保证能上网(一会VS会自动帮着装GDBServer),找根网线树莓派和笔记本相连,保证彼此间能Ping通;
3 创建一个简单的工程
如下图所示,创建一个"Linux Project Wizard"工程,在界面看不到的话,就在"Search for template"那个框中搜索,我就是这样找到的,然后单击"Next"
写入自己喜欢的工程名和自己期望的存放工程的文件夹,单击"Create",如下图所示:
单击"OK",如下图
单击"Next",如下图所示:
选择"Build The project locally with a cross-complier",在Cross-toolchain中通过选项选择"Raspberry PI in XXX",刚才装GNU工具链的地方,在"Deployment computer"中选择自己的远端的树莓派,在"Deloyment folder"中输入在树莓派中打算存放的应用程序的路径,单击"Finish",如下图所示:
VisualGDB会对所需的组件逐步检查,全通过的话会在左边打上绿色对号,不通过的话可以帮助在线安装该组件(上文提到要保证树莓派能联网的)。我的当时显示Checking GDB debugger那一项时打X了,起初我的树莓派没联网,老是提示安装失败。后来将树莓派联好网,很快就装上了,如下图所示,:
检查没问题后会自动创建出工程,在LinuxProject.cpp中已经自动生成了代码,如下图所示
在"return 0"前设置断点,然后单击VisualGDB Debugger,如下图所示,
在VisualGDB Output窗口会显示交叉编译调试的相关信息,以及打印出"Hello World",如下图所示,,单击小三角,使工程运行完。
为了保险起见,我使用Putty远程登录到树莓派上,进到之前设定的文件夹下,运行下该程序,确实能够显示"Hello, World!",如图所示: