自己动手编译交叉编译链


这篇文章主要记录一下自己编译 交叉编译链工具的过程。其实很多工作都是别人已经帮我们做好了的,我只是使用一下别人做好的工具。

编译的过程中,主要使用到的工具是:crosstool-ng   
编译的流程主要是:
    1、先编译安装 crosstool-ng
    2、配置 crosstool-ng
    3、crosstool-ng 这个工具就把剩下的工具都帮你做了。        //crosstool-ng做剩下的工作的时候,需要有网络,如果没有网络,比较麻烦,后面会说。

编译安装 crosstool-ng 的流程:
    1、去官网下载源码包。官网链接:http://crosstool-ng.github.io/download/    通过git可以直接下载:git clone https://github.com/crosstool-ng/crosstool-ng
    2、通过git直接下载后,进入 crosstool-ng 目录。里面有个README.md 文档。可以阅读它。它会告诉你,叫你去这个网址 http://crosstool-ng.github.io/docs/  这个网址会告诉你怎么配置安装。
    3、进入这个网址后,发现是英文。没什么太大的问题啦。用Google 浏览器打开,翻译成中文,啥都搞定啦。
    4、接下来就是配置了。//如果你不看网址的介绍,就继续看。建议看网址里面的介绍,它介绍的肯定比我好。
        先运行    :./bootstrap   
        会生成    :.configure 文件。
        然后运行    :./configure --prefix=/some/place            //注:/some/place  这个路径就是你想把 crosstool-ng 这个工具安装在哪里的路径
        接着运行    :make    //make的时候,会需要一些依赖包,提示什么就安装什么。如果它提示需要libtool,你又安装了,那么你再安装一个libtool.bin就行了。

主要安装:apt-get install -y gcc g++ gperf bison flex texinfo help2man make libncurses5-dev \
    python-dev autoconf automake libtool libtool-bin gawk wget bzip2 xz-utils unzip \
    patch libstdc++6
        最后运行    :make install
    5、这个时候,你去你安装路径(就是第四步指定的 /some/place)下面的 bin文件目录下,会发现一个 ct-ng 文件,这个文件就是 crosstool-ng 这个工具的可执行文件。
    6、导入环境变量,让你可以使用 ct-ng 这个可以执行程序。    //环境变量设置后,如果你 输入 ct- 按table键,能补全ct-ng,说明导入环境变量成功。
    
到了这里,完成了一半了。
接下来,你新建一个目录,随便建那里。

    1、比如在建了 /arm-tool 这样一个目录。    
    2、我们回到 crosstool-ng 的根目录下。会找到一个 samples 目录,进入samples目录。在里面可以看到很多的目录。根据目录的意思,你大致就知道你要用哪个了。我的板子是armv7。那么我就用armv7这个对应目录里面的东西。
    3、复制armv7目录里面的东西到 /arm-tool 目录里面。
    4、进入 /arm-tool 目录
    5、将 crosstool.config 文件复制一份,命名为 .config     //就是执行这个命令: cp crosstool.config   .config
    6、执行命令: ct-ng  menuconfig        这个时候,弹出一个界面,我们只需要在这个界面里面设置就行了。

1、进入:Paths and misc options  --->

 

2、Local tarballs directory    //我这里在第六行,设置这个东西   这个东西意思就是,你本地的源码在哪里。后面编译的时候,到这个地方找源码

3、Prefix directory            //我这里在第十行设置这个东西, 这个东西的意思就是,你编译好的东西,我给你放哪里

然后退出

4、进入:Target options  --->

5、设置: Target Architecture  为 (arm)

 

6、设置 Emit assembly for CPU 和   Use specific FPU   这两项要根据你的硬件进行匹配。

 

7、进入:Toolchain options  --->

8、设置:Tuple's vendor string    //设置这个,没什么实际的作用。可能能区分一下编译链。

     设置了,你的编译就是 arm-lqd-linux......这样的

9、设置:Tuple's alias      //设置这个,就是给你的编译链取个别名,它会软连接到实际的编译链上去。

 

10、进入:Operating System  --->

 

11、设置:Version of linux   //这里就是设置你的linux版本。不知道设置这个有什么用。即使版本不匹配,好像照样能用。

 

到了这里,基本就差不多了,然后保存,退出。

最后执行:ct-ng   build   程序就开始编译了。

程序会自动去网上下载源码,这个过程比较慢。//注:这个时候,如果你的电脑没网的话,那么它会一直检索。

没有网络的解决办法:

     你会看到程序运行的时候,会提示说在检索什么什么。这个时候,你可以把它需要的这个东西,自己从网上下载下来,然后把压缩包然后我们第2步指定的源码目录下。然后它会自动的去解压。

    注:程序需要的源码,有个对应的版本号,这个版本号是可以配置的。我这里只修改了内核版本,其他的没有修改,使用的是默认的版本。

程序编译好后,会在我们第3步指定的目录里面。目录里面有个bin目录,里面就是我们需要的交叉编译链了。

 

如果出错了,编译的目录下有个build.log,你把错误信息复制到这个log文件里面,就可以知道到底哪错了。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

monkey_lqd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值