title: 交叉编译
tags: linux
date: 2019/1/21 17:54:56
build/host/target
一般可以这么使用在gcc,gdb
./configure --build=编译平台 --host=运行平台 --target=目标平台 [各种编译参数]
参数 | 说明 | |
---|---|---|
build | 当前的计算机环境 | 该参数在不指定的情况下将自动常识猜测目前平台的名称 |
host | 编译出来的程序要在哪里运行 | 当不指定时host将自动使用build来定义自己 |
target | 编译出来的一个新的编译器(gcc/gdb/binutils)它编译的程序在哪运行 |
//https://blog.csdn.net/ChrisNiu1984/article/details/6620709
我有一个x86计算机,它上面工具很全,至少有gcc。这时我有了一个arm处理器的上网本。
我想为我的arm上网本写点程序,但是因为上网本性能很差我不想在arm上开发编译,于是我就想在自己电脑上开发然后copy过去给他用。这时我就需要一个在我的x86(build)上编译一个“可以在我x86(host)本机上运行的gcc,这个新gcc编出来的程序是可以在arm(target)上运行的”。 此时选项为 build=x86,host=x86,target = arm。
此时我用这个gcc编译一个helloworld,这个helloworld的build=x86,host=arm
后来我又得到了一个超强服务器计算机,假设框架叫Super。我想用服务器编译比用我的x86要快的多,于是我就想在Super上用Gcc编译arm程序。但是我怎么得到在Super上能跑起来的gcc呢?当然是自己编译。于是我就需要在我的x86(build)上编译一个能在Super(host)上运行的gcc,而且它编出来的程序是在arm(target)上运行。此时选项为 build=x86,host=Super,target = arm。
此时我用这个gcc编译一个helloworld,这个helloworld的build=Super,host=arm
prefix
使用这个参数,可以指定安装的目录
make install prefix=$PWD/tmp
或者
./configure -prefix=/usr/xxx