18.16.1 自写BootLoader错误

ERROR :
  boot.c:: warning: return type of 'main' is not `int'
ANSWER :
  int main(void){
   ……
   return -;/*执行到这里就出错了*/
  }
ERROR :
  boot.c: In function `main':【未声明】
  boot.c:: warning: implicit declaration of function `uart0_init'
  boot.c:: warning: implicit declaration of function `puts'
  boot.c:: warning: implicit declaration of function `nand_read'
ANSWER :
  在函数前声明即可
ERROR :
  boot.c:: warning: passing arg of `nand_read' makes pointer from integer without a cast
ANSWER :
  将整型强制类型转换为指针
  nand_read(0x60000+, (unsigned char *)0x30008000, 0x200000);
ERROR :
  init.c: In function `isBootFromNorFlash':
  init.c:: warning: integer constant is too large for "long" type
  init.c:: warning: overflow in implicit constant conversion
  init.c:: warning: integer constant is too large for "long" type
  init.c:: warning: comparison is always false due to limited range of data type
ANSWER :
  是0x12345678不是0x123456789(超出整型2^)
   volatile int *p = (volatile int *);//
   int val; //用来保存原来的值,在判断完后恢复
   val = *p;
   *p = 0x12345678;
ERROR :
  init.c:: warning: conflicting types for built-in function 'puts'
  boot.c:: warning: conflicting types for built-in function 'puts'
  boot.c:: warning: conflicting types for built-in function 'strcpy'
ANSWER :
  /*错误原因:
  * 编译器自带了strcpy和自己写的strcpy函数类型冲突
  * 在Makefile链接的时候加
  * CPPFLAGS :=-nostdinc -nostdlib
  */
  The ISO C90 functions
  abort, abs, acos, asin, atan2, atan, calloc, ceil, cosh,cos, exit, exp, fabs,
  floor, fmod, fprintf, fputs, frexp, fscanf, isalnum, isalpha,iscntrl, isdigit,
  isgraph, islower, isprint, ispunct, isspace, isupper, isxdigit,tolower, toupper,
  labs, ldexp, log10, log, malloc, memchr, memcmp, memcpy, memset,modf,
  pow, printf, putchar, puts, scanf, sinh, sin, snprintf, sprintf, sqrt, sscanf,
  strcat, strchr, strcmp, strcpy, strcspn, strlen, strncat, strncmp,
  strncpy, strpbrk,strrchr, strspn, strstr, tanh, tan, vfprintf, vprintf and vsprintf
  are all recognized as built-in functions unless ‘-fno-builtin’ is specified (or ‘-fno-builtin-function’ is specified for an individual function). All of these functions have corresponding versions
  prefixed with __builtin_.   将Makefile中CPPFLAGS := -nostdinc
  改为CPPFLAGS := -nostdinc -fno-builtin

ERROR 06:         

  my_printf.c:(.text+0x120):undefined reference to `__aeabi_uidivmod`

  my_printf.c:(.text+0x158):undefined reference to `__aeabi_uidiv`

ANSWER 06:   

  /*编译器找不到除法函数*/

  在arm-linux-gcc-4.3.2编译器使用libgcc.a中的除法可以

  在arm-linux-gcc-3.4.5编译器使用lib1funcs.S中的除法可以

ERROR 07:         

book@book-desktop:/work/system/linux-2.6.22.6$  sudo make uImage

编译刚解压的目录时,显示如下错误:

  [sudo] password for lsb: make: arm-linux-gnu-gcc: Command not found

  CHK     include/linux/version.h

  make[1]: `include/asm-arm/mach-types.h' is up to date.

CHK     include/linux/utsrelease.h

CC      arch/arm/kernel/asm-offsets.s

  /bin/sh: arm-linux-gnu-gcc: not found

  make[1]: *** [arch/arm/kernel/asm-offsets.s] Error 127

  make: *** [prepare0] Error 2

ANSWER 07:   

  在根目录下没有权限。

  sudo chmod 777 kernel -R

  其中,kernel为内核目录。

  最值得注意的是:定目录的Makefile 是否该为相对应的交叉工具链



18.16 gcc-3.4.5编译错误及解决方法集锦的更多相关文章

  1. vs2010打包系统必备选择.net framework 3.5sp1编译错误的解决方法

    利用visual studio 2010进行打包程序,默认安装的是Framework 4.0,如果需要将3.5sp1打包到系统中一起安装(选择了"从与我的应用程序相同的位置下载系统必备组件& ...

  2. VC6的工程转到VC2010或更高版本出现fatal error C1189编译错误的解决方法

    以前也遇到过,当时解决了没写下来,这次正好又遇到了,就顺手写一下吧,别下次又忘记了. 当VC6的工程转到VC2010或更高版本时编译出现如下错误: c:\program files\microsoft ...

  3. 最新版Duilib在VS2012下编译错误的解决方法

            svn了好几次最新版本的项目源代码, 在VS2012下编译老是出错, 改了后没记录, 结果又忘记, 所以在此记录下.        这个问题很普遍, 非常多的人遇到.       至于 ...

  4. Ncut源码编译错误的解决方法

    NCut是一个比较老的开源代码了.所以在新的matlab的环境下老出各种bug. 经过自己的各种折腾,总结为一下几点: 1.保证matlab的mex是有C编译器可以用的,具体可以用 mex -setu ...

  5. gcc 引用math 库 编译的问题 解决方法

    1.gcc app.c -lm 其中lm表示的是连接 m forlibm.so / libm.a表示你想要的库 abc for libabc.so / libabc.a 其中.a表示的是静态链接库 . ...

  6. Office Word等双击空白处的“隐藏的模块中的编译错误:MTW5”解决

    Microsoft Visual Basic for Applications 隐藏的模块中的编译错误:MTW5. ...

  7. Android编译环境——ubuntu12.04上android2.3.4编译错误以及解决

    Android编译环境——ubuntu12.04上android2.3.4编译错误以及解决 分类: android应用开发2013-08-21 09:20 4222人阅读 评论(3) 收藏 举报 li ...

  8. GCC-4.6.3编译linux2.6.32.12内核出现“重复的成员‘page’”错误的解决方法

    使用gcc4.6.3编译linux2.6.32.12内核出现错误如下: In file included from drivers/net/igbvf/ethtool.c:36:0: drivers/ ...

  9. 编译android源码遇到错误及其解决方法

    升级ubuntu的14.04后,android的源码又编译错误了,一下是错误说明赫解决方法: 1.make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_ ...

随机推荐

  1. Flutter 卡在 package get 的解决办法

    今天在尝试使用Flutter 的时候,需要使用一个第三方库 修改了 pubspec 文件之后,AS 像往常一样提示 需要 package get. 之前都挺正常,不知道今天怎么了. 一直处在 Runn ...

  2. 《多线程操作之生产者消费者》(单生产单消费&多生产多消费)

    说明1:假设有一个放商品的盘子(此盘子只能放下一个商品).生产者每次生产一个商品之后,放到这个盘子里,然后唤醒消费者来消费这个面包.消费者消费完这个商品之后,就唤醒生产者生产下一个商品.前提是,只有盘 ...

  3. 单例模式 | 程序员都想要探索的 Javascript 设计模式

    最近打算系统的学习 Javascript 设计模式,以便自己在开发中遇到问题可以按照设计模式提供的思路进行封装,这样可以提高开发效率并且可以预先规避很多未知的问题. 先从最基本的单例模式开始 什么是单 ...

  4. Nim函数调用的几种形式

    Nim函数调用的几种形式 Nim 转载条件:如果你需要转载本文,你需要做到完整转载本文所有的内容,不得删改文内的作者名字与链接.否则拒绝转载. 关于nim的例行介绍: Nim 是一门静态编译型的系统级 ...

  5. 使用bitsadmin.exe 下载文件,配合bcn.bat玩出更多的花样~~

    bitsadmin的简单介绍与基本用法: bitsadmin.exe 可以用来在windows 命令行下下载文件.bitsadmin是windows 后台智能传输服务的一个工具,windows 的自动 ...

  6. Java ee Turorial Hello1 Hello1.java解析

    package javaeetutorial.hello1; import javax.enterprise.context.RequestScoped;import javax.inject.Nam ...

  7. log4j:WARN Please initialize the log4j system properly解决办法

    使用log4j,报警如下: log4j:WARN No appenders could be found for logger log4j:WARN Please initialize the log ...

  8. 服务器tomcat/mysql的一些有关命令

    停服务1.“ps -ef|grep java” # 查看tomcat进程id 若下面出现一大串内容,包含有tomcat的目录,前面的四位数的数字就是tomcat应用的进程id 2.“kill -9 进 ...

  9. kafka学习笔记整理01

    Apache Kafka 消息中间件->流式数据处理平台 特点: 高可靠性(分布式.分区.复制和容错).高吞吐量.持久化 消息模式:1)队列式(或点对点):在点对点消息系统中,消息被保存在队列中 ...

  10. 《团队-爬虫豆瓣top250项目-团队一阶段互评》

    团队名称:咣咣踹电脑 学号:2015035107217姓名:耿文浩 得分10 原因:组长带领的好,任务分配的好,积极帮助组员解决问题 学号:2015035107213姓名:周鑫 得分8 原因:勇于分担 ...