编译U-boot 出现 undefined reference to `dm9000_initialize' 的问题

    下载的  tekkamanninja-U-boot-2009.11_tekkaman 源代码编译时出现 undefined reference to `dm9000_initialize' 等一系列错误,

     经过多次编译常识终于找到原因  是交叉编译器的引起的问题

 

1 出现问题情况

github下载源代码后直接编译,由于 Makefile 中 定义的交叉编译器为

160行    CROSS_COMPILE = arm-9tdmi-linux-gnu-

而一般使用的是 arm-linux-  交叉编译器,当提示错误时我修改了  CROSS_COMPILE = arm-linux-

然后在继续make clean , make

出现  undefined reference to `dm9000_initialize' 等一系列错误

 

在网上找了很多,也没有发现原因

于是决定从新解压源代码,然后直接就修改Makefile 中关于交叉编译器的定义

然后 make 2440_onfig , make

居然没有错误了

重复尝试了几次都可以顺利通过编译

感觉很奇怪

 

2 我对问题的理解

   除了修改Makefile的顺序不同,其他的操作都一样,于是猜想可能是交叉编译器arm-9tdmi-linux-gnu- 与 arm-linux- 的问题

  之后进行了多次常识,发现只要先修改Makefle中的  CROSS_COMPILE 然后在编译就不会出错

  如果下载后没有修改Makefile,而是等待make出现错误后再去查看 CROSS_COMPILE 的定义,发现不是arm-linux,在进行修改。

  之后无论是 make clean && make ,还是 从新配置了再make 都会出现类似的错误。

 

3 总结

    由于我是菜鸟,刚刚学习uboot,对于交叉编译器等很多都不了解。

    不清除问题的具体原因,但是至少知道了如果避免这个错误的出现。希望以后升入学习能够解释。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值