树莓派4 Ubuntu20.04运行x86_64程序找不到ld-linux-x86-64.so.2求助
解决树莓派ARM Ubuntu运行x86_64可执行文件的报错问题
你遇到的核心问题是架构不兼容——树莓派4是ARM64架构,而VirtualBox里的Ubuntu是x86_64(AMD64)架构,你编译出来的"Hello world"是x86_64平台的可执行文件,ARM系统没法直接运行,所以才会找不到x86_64架构专属的动态链接器ld-linux-x86-64.so.2(这个文件只存在于x86_64系统里,ARM版Ubuntu根本不会预装)。
下面给你两种可行的解决办法:
方法1:直接在树莓派上重新编译(最推荐)
既然目标运行环境是树莓派的ARM Ubuntu,直接在树莓派上搭建编译环境重新编译代码就行:
- 先安装Qt Creator和clang:
sudo apt update && sudo apt install qtcreator clang - 把代码拷贝到树莓派(用U盘、SCP或者Git同步都可以),打开Qt Creator重新编译运行,生成的就是ARM架构的可执行文件,直接就能正常运行。
方法2:用QEMU模拟x86_64环境(临时测试用)
如果非要在树莓派上跑现成的x86_64可执行文件,可以通过QEMU模拟x86_64架构:
- 安装QEMU和架构支持组件:
sudo apt update && sudo apt install qemu-user-static binfmt-support - 安装x86_64版本的libc6(这会把
ld-linux-x86-64.so.2装到系统里):sudo dpkg --add-architecture amd64 sudo apt update sudo apt install libc6:amd64 - 现在再运行你的x86_64可执行文件,QEMU会自动模拟x86_64环境执行,但速度会比原生ARM程序慢很多,只适合临时测试场景。
别再浪费时间找ld-linux-x86-64.so.2了,ARM系统里本来就没有这个文件,架构不兼容才是问题根源。
内容的提问来源于stack exchange,提问作者BilboBaggins
相关产品推荐
相关产品推荐

