Sta*_*rds 19
你在64位操作系统上编译吗?尝试:
sudo apt-get install ia32-libs
Run Code Online (Sandbox Code Playgroud)
我在尝试编译Raspberry Pi内核时遇到了同样的问题.我在Ubuntu 12.04 64位上进行交叉编译,工具链需要ia32-libs才能在64位系统上运行.
见http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/
mvp*_*mvp 11
CodeSourcery约定是arm-none-linux-gnueabi-为所有可执行文件使用前缀,而不是gcc-arm-linux-gnueabi你提到的.因此,CodeSourcery gcc的标准名称将是arm-none-linux-gnueabi-gcc.
安装CodeSourcery G ++后,需要将CodeSourcery目录添加到您的PATH.
通常,我更喜欢将CodeSourcery安装到类似目录/opt/arm-2010q1或类似的目录中.如果你不知道你在哪里安装它,你可以找到它locate arm-none-linux-gnueabi-gcc,但是你可能需要强制更新你的定位数据库sudo updatedb才能locate正常工作.
确定CodeSourcery的安装位置后,通过以下编辑方式将其添加到PATH中~/.bashrc:
PATH=/opt/arm-2010q1/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
此外,定义是习惯和非常方便的
CROSS_COMPILE=arm-none-linux-gnueabi-
Run Code Online (Sandbox Code Playgroud)
在你的.bashrc,因为有了CROSS_COMPILE定义,大多数工具将自动使用适当的编译器进行ARM编译,而无需你做任何事情.
如果你在64位操作系统上,那么你需要安装这些额外的库.
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0
Run Code Online (Sandbox Code Playgroud)
小智 7
尝试在VM下的ubunto 14.04.03 64bit上交叉编译raspberry pi内核时遇到了同样的错误.解决方案在这里找到:
- 在Ubuntu框上安装用于交叉编译的包.
sudo apt-get install gcc-arm-linux-gnueabi make git-core ncurses-dev
Run Code Online (Sandbox Code Playgroud)
- 下载工具链
cd ~
git clone https://github.com/raspberrypi/tools
Run Code Online (Sandbox Code Playgroud)
- 将工具链添加到您的路径中
PATH=$PATH:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
Run Code Online (Sandbox Code Playgroud)
请注意path命令中的x64版本
小智 5
我也面临同样的问题并在安装以下依赖项后解决了它:
sudo apt-get install lib32z1-dev
Run Code Online (Sandbox Code Playgroud)