Linux下Eclipse IDE交叉编译C程序至树莓派4的配置问题
Eclipse交叉编译树莓派4C程序构建报错排查
问题描述
需求为在Linux系统的Eclipse IDE中编写hello world C程序,通过交叉编译生成可在树莓派4上运行的可执行文件,检索相关资料未找到有效解决方案。
已按相关教程执行以下配置操作:
- 在Eclipse IDE中使用Cross GCC创建新的C项目

- 将交叉编译器前缀设置为
arm-linux-gnueabihf-,交叉编译器路径设置为C:\rpi-eclipse\rpi-cross-toolchain\arm-linux-gnueabihf
- 创建项目时即出现2个报错

- 按教程指引调整配置:打开左侧菜单
C/C++ Build->Settings,在Tool Settings选项卡的Cross Settings页面,将Path配置为C:\rpi-eclipse\rpi-cross-toolchain\arm-linux-gnueabihf\bin;C:\rpi-eclipse\rpi-cross-toolchain\mingw-make,保存配置
- 构建Debug版本时报错仍未消除

当前无法定位问题是遗漏配置步骤还是缺少依赖,本地已安装TeamViewer和Discord可配合排查。
解决方案
核心错误为Linux系统无法识别Windows格式的C盘路径,且教程中提供的mingw-make是Windows平台专用的编译工具,无法在Linux环境运行,按以下步骤修复即可:
- 安装Linux原生的树莓派交叉编译工具链
若你使用Debian/Ubuntu系Linux发行版,直接在终端执行以下命令安装官方源维护的交叉工具链:
安装完成后执行sudo apt update # 树莓派运行32位系统时安装此包 sudo apt install -y gcc-arm-linux-gnueabihf make # 若树莓派运行64位Raspberry Pi OS,替换为安装64位工具链 # sudo apt install -y gcc-aarch64-linux-gnu makewhich arm-linux-gnueabihf-gcc(64位工具链执行which aarch64-linux-gnu-gcc),确认返回工具链路径,默认路径为/usr/bin。 - 修正Eclipse项目配置
打开项目属性页,进入C/C++ Build->Settings->Tool Settings->Cross Settings:- 交叉编译器前缀保持为
arm-linux-gnueabihf-(64位工具链改为aarch64-linux-gnu-) - 交叉编译器路径修改为上一步查到的工具链bin目录,即
/usr/bin,删除原有Windows格式的C盘路径 - 移除Path配置中
mingw-make相关的条目,Linux环境直接使用系统自带的make即可
- 交叉编译器前缀保持为
- 清理构建缓存后重新编译
点击Eclipse顶部菜单Project->Clean,选中对应项目清理旧的构建缓存,之后重新触发Debug版本构建即可正常生成可执行文件。
注意:编译生成的文件拷贝到树莓派后,需要先执行
chmod +x 文件名赋予可执行权限才能运行。
内容的提问来源于stack exchange,提问作者Aritz Urdangarin Larraza
相关产品推荐
相关产品推荐

