OK6410 串口警告:warning: conflicting types for built-in function 'putchar'
2015-05-28 14:04
253 查看
【编译器版本】
arm-linux-gcc 4.3.2
【问题描述】
在做OK6410裸机开发时,自己写了一个putchar函数,也就是通过串口发送字符串到超级终端。但在编译程序的时候出现了如下问题:
warning: conflicting types for built-in function 'putchar'
【问题分析】
在C语言标准中,有些通用函数被定义为built-in function(内建函数),像printf,puts,strchr,memset等等,这些函数不需要包含头文件中的声明,就可以编译连接该函数的。但有时候你想自己实现,就会出现上面所示的冲突提示。
有的时候你不用包含一些头文件,也能使用那个里面包含的函数,可能是编译器包含了一些常用的简单的函数的处理,即便是你不包含头文件,编译器也知道到哪里找,但是如果是一些复杂的函数,或者是你自己写的静态库,你想使用时必须要包含;仅仅只是一些简单的函数你不用包含头文件而已。
【解决办法】
1.在编译是加上-fno-builtin或者-fno-builtin-FUNCTION 选项,你就可以自己实现这些函数而不冲突了。例如在上面的提示中,你编译时加上-fno-builtin-puts ,就可以正常编译了。
2.把这些函数改个名称,以便不冲突。
arm-linux-gcc 4.3.2
【问题描述】
在做OK6410裸机开发时,自己写了一个putchar函数,也就是通过串口发送字符串到超级终端。但在编译程序的时候出现了如下问题:
warning: conflicting types for built-in function 'putchar'
【问题分析】
在C语言标准中,有些通用函数被定义为built-in function(内建函数),像printf,puts,strchr,memset等等,这些函数不需要包含头文件中的声明,就可以编译连接该函数的。但有时候你想自己实现,就会出现上面所示的冲突提示。
有的时候你不用包含一些头文件,也能使用那个里面包含的函数,可能是编译器包含了一些常用的简单的函数的处理,即便是你不包含头文件,编译器也知道到哪里找,但是如果是一些复杂的函数,或者是你自己写的静态库,你想使用时必须要包含;仅仅只是一些简单的函数你不用包含头文件而已。
【解决办法】
1.在编译是加上-fno-builtin或者-fno-builtin-FUNCTION 选项,你就可以自己实现这些函数而不冲突了。例如在上面的提示中,你编译时加上-fno-builtin-puts ,就可以正常编译了。
2.把这些函数改个名称,以便不冲突。
相关文章推荐
- warning: conflicting types for built-in function 'puts'
- warning: conflicting types for built-in function 'putc'
- warning: conflicting types for built-in function 'puts'
- warning: conflicting types for built-in function 'puts'
- warning: incompatible implicit declaration of built-in function 'exit'
- warning incompatible implicit declaration of built-in function 'printf'
- JNI--warning: incompatible implicit declaration of built-in function 'memcpy'
- 如何解决warning: incompatible implicit declaration of built-in function 'malloc'
- 解决warning: incompatible implicit declaration of built-in function 'malloc'
- warning : incompatible implicit declaration of built-in function 'exit' [enabled by default]
- warning: incompatible implicit declaration of built-in function 'exit'
- opencv2.0移植完后使用中cxtypes.h出现warning: incompatible implicit declaration of built-in function 'lrint‘解决
- error: no matching function for call to 'std::basic_ifstream<char>::open(std::string&)
- conflicting types for 'timer_t' 的解决
- \"No previous prototype for function\" warning警告错误
- gcc warning: warning: 'tick' may be used uninitialized in this function
- make[2]: *** No rule to make target `drivers/char/tianc_lcd.o', needed by `drivers/char/built-in.o'.
- Implicit declaration of function 'NSFileTypeForHFSTypeCode' is invalid in C99
- incompatible implicit declaration of built-in function 'malloc'
- warning:conflicting types for built-in function