configure移植技巧,绝对干货

一.环境

  • 主机:ubuntu
  • 开发板:   arm+linux

二.configure分析

  • --build --host --target介绍       
  1. --build为主机环境,如ubuntu,redhat等等,执行gcc -v命令可以查看到Target变量,--build=为Target变量的值,--build如果不填写的话,系统会默认填写主机环境。
  2. --host为目标环境,表示编译好的软件包在什么环境下执行,如果--host和--build相同,则编译好的软件包在主机环境执行,如果--host和--build不同则为交叉编译,目标环境为开发板,--host如果不填写的话,系统会默认填写主机环境。执行arm-linux-gcc -v(交叉编译每个人不一样,学会灵活运用)命令可以查看到Target变量,--build=为Target变量的值。
  3. --target仅仅用于编译交叉工具链,当交叉工具编译生成软件包时,这个软件包执行的环境就是--target的值。比如gcc编译生成的软件包的--target为主机环境,通过gcc -v查看target可以知道该值。arm-linux-gcc编译生成的软件包的--target为开发板环境,通过arm-linux-gcc -v查看target可以知道该值。
  • 目标环境为本机,configure最小命令为./configure。目标环境为开发板,configure最小命令为./configure --host=arm-linux。因为--build和--host不填写的话,系统会默认填写为主机环境。
  • 通过./configure -h查看configure详细配置选项,每个人的情况不一样,需自行配置,但只要保证最小命令,就能正确编译。
  • 常见错误:
  1. 交叉环境没有设置,需把arm-linux-gcc的路径添加到PATH变量,不然无法找到交叉编译器,从而无法交叉编译
  2. 由于反复设置环境,可能导致环境污染,最好进行make distclean或者重新解压新的源码进行编译,否则会出错
  3. 开源软件的源码包存在很大的差异,且缺乏管理,如果按照上面那的步骤编译不成功,可以尝试更多的版本,版本出问题解决起来最麻烦
  4. 如果编译出现问题,可以先把问题复制到百度或者谷歌进行搜索,找到解决问题办法,用于解决简单的问题。
软件移植是指将一个已经在一种平台上运行正常的软件移植到另一种不同的平台上运行。configure是一个常用的软件配置工具,用于根据不同平台的需求生成特定的编译指令和配置文件。 在进行configure软件移植时,首先需要了解目标平台的硬件环境和操作系统的特点。这包括硬件架构、处理器类型、操作系统版本等信息。然后,根据目标平台的要求,需要调整软件的编译选项和相关配置参数。 在进行软件移植之前,需要对configure脚本进行修改。配置脚本是一个用于检查平台特性并生成相关配置的脚本文件。根据目标平台的要求,需要修改configure脚本中的条件判断、路径设定和编译选项等内容,以适配目标平台的特点。 在配置脚本中,可以使用一些预定义的变量,如CFLAGS、LDFLAGS等,来指定编译和链接的选项。根据目标平台的需求,可能需要修改这些变量的取值。同时,在configure脚本中可能还需要进行一些特定平台的处理,如检查特定库文件、特定命令或系统调用的可用性等。 另外,configure还负责生成一些配置文件,如Makefile等。需要确保生成的配置文件与目标平台的要求一致。同时,在移植过程中,可能还需要调整软件中对平台特性的依赖,如指定特定库文件的链接路径等。 在移植过程中,可能会遇到一些平台兼容性的问题,如特定函数的实现差异、系统调用的差异等。这时,需要根据具体问题进行相应的修改和调试。 总之,configure软件移植是一个根据目标平台特点进行软件配置和编译的过程。需要对配置脚本进行修改,指定适合目标平台的选项和路径,并进行一些特定功能的适配和调试工作。通过正确的移植过程,可以将软件成功地在不同平台上运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值