查看: 7413|回复: 12

fsl交叉编译问题【已解决】

[复制链接]
  • TA的每日心情
    奋斗
    2015-10-8 09:49
  • 签到天数: 430 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2014-6-19 23:03:08 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 bruce_helen 于 2014-6-20 11:24 编辑

    今天移植Sqlite开源数据库到RioTboard上,在交叉编译这里卡了一天,到现在还没解决。

    我使用Ubuntu12.04 64系统,跑在VMware上。
    编译Sqlite时出现
    命令:sudo ./configure --host=arm-linux --prefix=/home/bruce/share/work/sqllite/sqlite
    执行后不认识交叉编译器,但是编译器能在命令行正确执行,路径也加入环境变量中。编译u-boot和内核都没有问题,为什么编译这些开源软件就不行呢?
    clipboard.png


    我现在怀疑是系统的问题。准备到32位系统上试试。

    ===========================================
    终于解决了!解决方法:
    之前写的命令有问题,换成下面的就可以了,需要加上CC AR等。注意:虽然环境变量里已经有fsl的编译路径,但是这里编译器的路径必须全部加上,要不然在编译时会出现找不到的情况。
    ./configure --host=arm-linux CC=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-linux-gcc AR=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-linux-ar STRIP=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-linux-strip RANLIB=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-linux-ranlib CFLAGS="-mfpu=vfp -Os -lpthread -lrt" LDFLAGS=${LDFLAGS} --prefix=/home/bruce/share/work/sqllite/sqlite

    使用file命令查看下编译出的bin文件信息,ARM架构。
    clipboard.png

    下面准备写程序测试Sqlite,敬请期待

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-6-4 09:20
  • 签到天数: 427 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2014-6-20 09:08:00 | 显示全部楼层
    这个很有可能,遇到过类似情况,换回32位就好了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2013-10-31 08:31
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2014-6-20 09:12:19 | 显示全部楼层
    是不是要用指定的gcc版本啊?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2024-9-30 02:33
  • 签到天数: 444 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2014-6-20 09:48:55 | 显示全部楼层
    怀疑 交叉编译器没有安装好或是环境变量没弄好
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-10-8 09:49
  • 签到天数: 430 天

    连续签到: 1 天

    [LV.9]以坛为家II

     楼主| 发表于 2014-6-20 10:10:46 | 显示全部楼层
    zhiqiuyiye504 发表于 2014-6-20 09:08
    这个很有可能,遇到过类似情况,换回32位就好了

    唉,换回32位也不行,Ubuntu10.04,Ubuntu9.04都试了,不行。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-10-8 09:49
  • 签到天数: 430 天

    连续签到: 1 天

    [LV.9]以坛为家II

     楼主| 发表于 2014-6-20 10:12:14 | 显示全部楼层
    gdmgb520 发表于 2014-6-20 09:12
    是不是要用指定的gcc版本啊?

    怎么指定啊,Ubuntu系统中的GCC是自带的,ram编译器就是官方提供的4.6.x版本啊。这个需要怎么设置?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-10-8 09:49
  • 签到天数: 430 天

    连续签到: 1 天

    [LV.9]以坛为家II

     楼主| 发表于 2014-6-20 10:14:14 | 显示全部楼层
    木子鱼 发表于 2014-6-20 09:48
    怀疑 交叉编译器没有安装好或是环境变量没弄好

    交叉编译器能够编译u-boot和内核啊。环境变量我都不知道确认过多少次了。在命令行中执行完全没有问题。自己写了hello world的源程序编译,下载到板子里OK.这说明编译器没问题。
    问题出在开源软件的配置过程中,./configure配置文件太复杂,完全不懂,不知道为什么出错。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-11-15 17:06
  • 签到天数: 30 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2014-6-20 14:34:55 | 显示全部楼层
    这编译路径也真够长的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2016-3-30 01:31
  • 签到天数: 15 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2014-6-23 00:01:00 | 显示全部楼层
    host指定arm-linux后,CC,AR,LD这些都会指定到arm-linux路径里,执行./configure后有打开makefile确认过吗,还有命令这么长,不会用脚本写吗
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-10-8 09:49
  • 签到天数: 430 天

    连续签到: 1 天

    [LV.9]以坛为家II

     楼主| 发表于 2014-6-23 08:33:22 | 显示全部楼层
    kaisuvi 发表于 2014-6-23 00:01
    host指定arm-linux后,CC,AR,LD这些都会指定到arm-linux路径里,执行./configure后有打开makefile确认过 ...

    Makefile文件没仔细确认,不过看configure log和最后生成的可执行文件信息,确定交叉编译成功。
    写个脚本是不错,但是这玩意我只编译一两次,懒得写。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2025-1-3 06:38 , Processed in 0.222280 second(s), 34 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.