zoukankan      html  css  js  c++  java
  • Linux开源模块迁移概述暨交叉编译跨平台移植总结--从《嵌入式Linux驱动模板简洁和工程实践》

    本文摘录《嵌入式Linux驱动模板简洁和工程实践》一本书“开发和调试技术”。

    Linux强大的是,有那么多的开源项目可以使用。通常非常需要可以通过寻找相关的源模块被定义为高速的解决方案。使这些开源模块的嵌入。对开源项目进行交叉编译。

    依据详细情况。下载的开源项目在组织上有非常多情况,在此对各种情况进行归类介绍。

    1. 下载的开源软件包找不到Makefile

    对于这样的开源包一般是採用configure的方式组织的,那么第一步就是使用软件包中的configure生成Makefile文件。比如移植module-init-tools-3.2:

    CC=arm-linux-gcc ./configure --prefix=/my_depmod --without-gun-ld --host=arm-linux

    在./ configure之前指定交叉编译工具,指定安装路径为/my_depmod,后面选项是CPU相关的。

    各个选项能够通过./configure –help查看。

       第二步,生成Makefile之后,打开Makefile就能够看到:

    prefix = /home/xlong.lin/workspace/sample/module-init-tools-3.2/my_depmode

    CC = arm-linux-gcc

    已经自己主动生成了相应的交叉编译Makefile。

    第三步,Make进行编译。

    第四步,make install安装。

    在指定的安装路径下得到终于须要的目标文件或者是库。

    第五步,为了确认。使用file查看所得到的文件是否是嵌入式CPU中能够运行的。

    2. 有些源代码包下载解压之后有Makefile的,同一时候里面有CC选项的,这样的情况比較简单。仅仅要改动CC等选项就可以。

       比如。移植goahead到单板上。解压之后Makefile中改动:

    CC = arm-linux-gcc

    AR = arm-linux-ar

       然后Make编译就可以。

     假设Makefile中有CROSS_COMPILE也相同改动交叉编译工具就可以。

    3. 有Makefile可是找不到CC或者CROSS_COMPILE的情况。

    这样的情况採用 make CROSS= arm-linux-进行编译。

    以上仅仅对常见情况的交叉编译进行总结。不管哪种情况编译出来的都须要使用file工具确认是否交叉编译成功,能否够在相应的CPU在运行。善于利用开源软件的交叉编译移植可以实现非常高速的多用途。

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    VSCode 预览 .md 文件
    ubuntu 16.04安装visual studio code 提示libnss3版本低:NSS >= 3.26 is required
    spring-tool-suite(STS) 创建 spring boot项目
    win10正式版开始菜单无法打开,右边的网络连接、操作中心也打不开
    nginx配置事例
    spring 集成 redis -- pub/sub
    springMVC--全局异常处理
    dubbo入门使用
    dubbo配置约束
    zookeeper安装与集群搭建
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4684130.html
Copyright © 2011-2022 走看看