构建交叉编译链arm-linux-gnueabihf-

body
{
font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif;
font-size: 10.5pt;
line-height: 1.5;
}
html, body
{

}
h1 {
font-size:1.5em;
font-weight:bold;
}
h2 {
font-size:1.4em;
font-weight:bold;
}
h3 {
font-size:1.3em;
font-weight:bold;
}
h4 {
font-size:1.2em;
font-weight:bold;
}
h5 {
font-size:1.1em;
font-weight:bold;
}
h6 {
font-size:1.0em;
font-weight:bold;
}
img {
border:0;
max-width: 100%;
height: auto !important;
}
blockquote {
margin-top:0px;
margin-bottom:0px;
}
table {
border-collapse:collapse;
border:1px solid #bbbbbb;
}
td {
border-collapse:collapse;
border:1px solid #bbbbbb;
}

终于......成功了....

首先感谢http://preshing.com/20141119/how-to-build-a-gcc-cross-compiler/

再加个参考网址保险点,以前看这个一直没能成功...现在懂了...:

http://wiki.osdev.org/GCC_Cross-Compiler

需要先下载下列包,换过其他版本,都失败过...我也是醉了...

wget http://ftpmirror.gnu.org/binutils/binutils-2.24.tar.gz

wget http://ftpmirror.gnu.org/gcc/gcc-4.9.2/gcc-4.9.2.tar.gz

wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.4.79.tar.xz

?wgethttp://ftpmirror.gnu.org/glibc/glibc-2.20.tar.xz

wget http://ftpmirror.gnu.org/mpfr/mpfr-3.1.2.tar.xz

wget http://ftpmirror.gnu.org/gmp/gmp-6.0.0a.tar.xz

wget http://ftpmirror.gnu.org/mpc/mpc-1.0.2.tar.gz

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.12.2.tar.bz2

wget ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-0.18.1.tar.gz

Build Steps

先解压缩所有压缩包:

for f in *.tar*; do tar xf $f; done

(涨知识了...)

把 mpfr,gmp,mpc,isl,cloog放到gcc目录下:

cd gcc-4.9.2

ln -s ../mpfr-3.1.2 mpfr

ln -s ../mpc-1.0.2 mpc

ln -s ../isl-0.12.2 isl

ln -s ../cloog-0.18.1 cloog

cd ..

然后再创建一个交叉编译根目录:

sudo mkdir -p /opt/cross

sudo chown -R 777 /opt/cross

申明环境变量:

export PREFIX=/opt/cross

export PATH=/opt/cross/bin:$PATH

export TARGET=arm-linux-gnueabihf

ok,开始主要步奏

=========================================

Step 1:构建Binutils

mkdir build-binutils

cd build-binutils

../binutils-2.24/configure --prefix=$PREFIX --target=$TARGET --disable-multilib

make -j8

sudo make install

cd ..


Step 2:Linux Kernel Headers

cd linux-3.4.79

sudo make ARCH=arm INSTALL_HDR_PATH=/opt/cross/$TARGET headers_install

cd ..


Step 3:C/C++ Compilers

mkdir build-gcc

cd build-gcc

../gcc-4.9.2/configure --prefix=$PREFIX --target=$TARGET --enable-languages=c,c++ --disable-multilib

make -j8 all-gcc

sudo make install-gcc

cd ..

Step 4:Standard C Library Headers and Startup Files

mkdir -p build-glibc

cd build-glibc

../glibc-2.20/configure --prefix=/opt/cross/$TARGET --build=$MACHTYPE --host=$TARGET --target=$TARGET --with-headers=/opt/cross/$TARGET/include --disable-multilib libc_cv_forced_unwind=yes

sudo make install-bootstrap-headers=yes install-headers

sudo make -j8 csu/subdir_lib

sudo install csu/crt1.o csu/crti.o csu/crtn.o /opt/cross/$TARGET/lib

sudo $TARGET-gcc -nostdlib -nostartfiles -shared -x c /dev/null -o /opt/cross/$TARGET/lib/libc.so

sudo touch /opt/cross/$TARGET/include/gnu/stubs.h

cd ..


Step 5:Compiler Support Library

cd build-gcc

sudo make -j8 all-target-libgcc

sudo make install-target-libgcc

cd ..


Step 6:Standard C Library

cd build-glibc

sudo make -j8

sudo make install

cd ..

Step 7:Standard C++ Library

cd build-gcc

sudo make -j8

sudo make install

cd ..

来自为知笔记(Wiz)

时间: 2024-11-08 12:26:16

构建交叉编译链arm-linux-gnueabihf-的相关文章

golang 2行代码在基于arm linux的树莓派、orangepi上运行http web服务

go语言(golang)简化了跨平台交叉编译步骤,支持在windows系统下交叉编译基于arm+linux平台的应用,运行时无需其它依赖库.以下以一个简单的http server为例,先上源码: ************************************************************ package main import( "net/http" ) funcmain(){ http.Handle("/",http.FileServe

Arm Linux Kernel 构建 情景分析

概述 构建一个内核,一般是先配置,后编译.这里以构建 Nexus5 内核为例,代号为 hammerhead. 配置 通常做法是以厂商预置的配置为基础,根据自己需要进行配置.命令: make ARCH=arm hammerhead_defconfig 执行完毕后,"arch/arm/configs/hammerhead_defconfig" 文件会被复制到 ".config" ,作为默认配置. 然后运行以下命令根据自己需要进行配置: make ARCH=arm men

为arm linux交叉编译tcpdump

1.从官网www.tcpdump.org下载并解压源文件,这里是 tcpdump-4.5.1.tar.gz libpcap-1.5.3.tar.gz 2.编译libpcap,安装目录为/home/armroot,交叉编译不能确定pcap类型,手工指定为linux ./configure --host=arm-linux --with-pcap=linux --prefix=/home/armroot make make install 3.编译tcpdump.交叉编译不能确定内核版本,手工指定为

Arm 2009q1-203下载---arm-none-linux-gnueabi-gcc-4.3.3交叉编译链下载

某公司开发板自带的开发的资料中ti_tools/cgt_a8/文件夹中的arm交叉编译工具在使用时出现问题,../bin/ld:cannot find -lgcc_s 查找并未发现存在动态链接库libgcc_s.so,故可能此交叉编译工具集不可用或者不完整 下载新的交叉编译工具,安装,问题解决 下载链接(版本为4.3.3)链接: http://pan.baidu.com/s/1kTHUJv5 sudo tar -jxvf arm-2009q1-203-arm-none-linux-gnueabi

GCC交叉编译链命名

命名格式: arch[-vendor][-os]-abi arch:CPU的架构 vendor:工具链的供应商 os: 目标上运行的操作系统,不同的操作系统对应着不同的C库,例如 newlib.glibc,.crt0等等.在程序的连接阶段将连接这些不同的C库. abi: 指定应用程序的二级制文件接口规定,确保不同的编译链编译的代码能够兼容.比如说,ARM EABI是一种由ARM公司建立的标准,允许一种工具链连接其他工具链生成的目标文件. 举例: arm-none-eabi CPU为ARM架构,没

(mini2440)建立交叉编译环境+配置linux内核

(mini2440)建立交叉编译环境+配置linux内核 系统ubuntu12.04(非虚拟机下) mini2440 CPU型号:       S3C2440AL-40 Nanflash型号:K9F1G08 Norflash型号:SST39VF1601 LCD:              统宝 240 x 320 $: 普通账户 #:root账户 *当shell下输入路径时可使用tab键自动补全 (一)建立交叉编译环境 1.将mini2440光盘中的linux文件夹拷贝到 /home/liang

学习ARM+Linux的很好的资料(转)

前段时间做了一个关于ARM9 2440资料的汇总帖,很高兴看到***和CSDN等论坛朋友们的支持和鼓励.当年学单片机的时候datasheet和学习资料基本都是在论坛上找到的,也遇到很多好心的高手朋友,耐心的回答我提出的问题.感激.图报,很简单的想法.希望这次整理的资料帖能对更多的嵌入式爱好者朋友带来帮助! PS:    在此特别感谢 古道热肠 版主把我的帖子加精,给小弟极大鼓舞! 嵌入式入门篇: 什么是嵌入式系统                         http://www.helloa

ARM Linux Qt 5.x.x 无标题栏

/********************************************************************************* * ARM Linux Qt 5.x.x 无标题栏 * 说明: * 以前Qt 4.x.x版本是直接有标题栏,但现在的Qt 5.x.x没有了标题栏,从参考文章里 * 可以看出,是需要另外移植窗口管理器的. * * 2017-1-6 深圳 南山平山村 曾剑锋 ***************************************

构建自己的embedded linux系统

[教程]使用buildroot完全自定义自己的embedded linux系统(nand)http://www.eeboard.com/bbs/thread-38377-1-1.html [教程] [教程]使用buildroot完全自定义自己的embedded linux系统(nand) ubuntu, fedora, debian太过庞大了,你是否想完完全全的构建自己的embedded linux系统?本篇文章教你如何实现 编译环境: ubuntu 12.04(x86_64) 目标环境: 1)