OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6780|回复: 14

头文件stdio中有错误

[复制链接]

1

主题

8

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2014-1-17
在线时间
0 小时
发表于 2014-1-18 11:45:59 | 显示全部楼层 |阅读模式
刚开始安装的是MDK4.7,但是按照视频上编译显示错误  缺少crtdefs.h这个头文件,就下载了一个。再编译就出现了好多错误:在stdio.h文件中,出现类似这样的错误:

Build target 'Target 1'
compiling test.c...
..\SYSTEM\sys\stdio.h(186): error:  #77-D: this declaration has no storage class or type specifier
..\SYSTEM\sys\stdio.h(186): error:  #65: expected a ";"
..\SYSTEM\sys\stdio.h(187): error:  #77-D: this declaration has no storage class or type specifier
..\SYSTEM\sys\stdio.h(187): error:  #65: expected a ";"
..\SYSTEM\sys\stdio.h(189): error:  #757: variable "_Check_return_" is not a type name
..\SYSTEM\sys\stdio.h(189): error:  #101: "FILE" has already been declared in the current scope


对应的代码:

#ifndef _STDIO_DEFINED

_Check_return_ _CRTIMP int __cdecl _filbuf(_Inout_ FILE * _File );
_Check_return_opt_ _CRTIMP int __cdecl _flsbuf(_In_ int _Ch, _Inout_ FILE * _File);

_Check_return_ _CRTIMP FILE * __cdecl _fsopen(_In_z_ const char * _Filename, _In_z_ const char * _Mode, _In_ int _ShFlag);

_CRTIMP void __cdecl clearerr(_Inout_ FILE * _File);
#if __STDC_WANT_SECURE_LIB__
_Check_return_wat_ _CRTIMP errno_t __cdecl clearerr_s(_Inout_ FILE * _File );
#endif  /* __STDC_WANT_SECURE_LIB__ */

*******************************************************
好像是针对_Check_return_报的错误


这个问题昨晚上就出现了,我弄了半天也没弄好,以为是stdio的问题,重新下载了一个也没用。求大家帮忙解决一下,多谢







正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2014-1-17
在线时间
0 小时
 楼主| 发表于 2014-1-18 12:16:07 | 显示全部楼层
回复 支持 反对

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2014-1-18 13:52:28 | 显示全部楼层
回复【楼主位】Iron Man:
---------------------------------
stdio.h文件是不会出错的,你重新新建个工程试试。
站在巨人的肩膀上不断的前进。。。
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2014-1-17
在线时间
0 小时
 楼主| 发表于 2014-1-18 14:39:17 | 显示全部楼层
回复【3楼】xiaoyan:
---------------------------------
我重新建了一个工程,在crtdefs.h头文件中出现报错:
代码:
#if !defined (_WIN32)
#error ERROR: Only Win32 target supported!
#endif  /** !defined (_WIN32) */

报错:
Only Win32 target supported

之前就出现过这种错误
我把这一行注释掉
#if !defined (_WIN32)
//#error ERROR: Only Win32 target supported!        //注释掉
#endif  /** !defined (_WIN32) */


就会出现开始我问得问题
在stdio.h文件中,如下报错:
D:\set_up program\电子开发相关\MDK4.7\ARM\RV31\INC\stdio.h(186): error:  #65: expected a ";"

对应代码:
_Check_return_ _CRTIMP int __cdecl _filbuf(_Inout_ FILE * _File );

而且很多
好像是在代码中缺少“;”,但好像是在定义_Check_return_ 时出现的问题,而且显示_Check_return_ 没有被定义过。
这个该如何解决
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2014-1-17
在线时间
0 小时
 楼主| 发表于 2014-1-18 16:04:16 | 显示全部楼层
我换了一台电脑试了一下还是这样,这到底是怎么回事啊?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-1-18 19:09:44 | 显示全部楼层
mdk4?
在安装目录,搜索:stdio.h
然后拷贝到:工程/SYSTEM/sys文件夹里面。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2014-1-17
在线时间
0 小时
 楼主| 发表于 2014-1-18 19:45:02 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
换成MDK3了,两个版本都试过。stdio.h文件也放到sys文件夹下了,但是报错,具体情况在3楼,
麻烦原子哥帮忙解决一下,多谢阿,这是我刚开始学的第一步
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-1-18 22:48:31 | 显示全部楼层
回复【7楼】Iron Man:
---------------------------------
删了MDK3,MDK4,连同安装目录也一起删了。
重装。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2014-1-17
在线时间
0 小时
 楼主| 发表于 2014-1-19 11:59:45 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
在多次重装之后,这个问题终于不见了。但是出现了关于汇编不通过的问题,w我在本论坛搜索了一下,就按照他们说的把检查的功能关闭了,但是还是不能通过,不能生成sys.o这个文件。然后我就把代码中几个出现汇编的地方全部注释掉了,这样就能通过了。
我看了一下代码,WFI_SET这个函数的作用是关闭所有的中断,我想问一下,问什么这个以及之后的几个函数要用汇编写,而不是用C语言呢?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-1-19 12:37:30 | 显示全部楼层
回复【9楼】Iron Man:
---------------------------------
这个必须用汇编指令,所以,没法用C语言实现。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-1-20 09:07:18 | 显示全部楼层
回复【2楼】Iron Man:
---------------------------------
我用的MDK3.8A和MDK4.73一直没问题
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

1

主题

20

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2013-7-2
在线时间
0 小时
发表于 2014-7-15 01:15:21 | 显示全部楼层
我装过 MDK4.73 直接找不到 stdio.h 库,又装回 4.10了
回复 支持 反对

使用道具 举报

1

主题

20

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2013-7-2
在线时间
0 小时
发表于 2014-7-15 01:18:24 | 显示全部楼层
回复【12楼】batsing:
---------------------------------
补充一下,我用的是Windows XP SP3 32位。不知道10楼是不是用WIN7的
回复 支持 反对

使用道具 举报

1

主题

20

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2013-7-2
在线时间
0 小时
发表于 2014-7-15 01:19:46 | 显示全部楼层
回复【11楼】Badu_Space:
---------------------------------
我装过 MDK4.73 直接找不到 stdio.h 库,又装回 4.10了
我用的是Windows XP SP3 32位。不知道10楼你是不是用WIN7的
回复 支持 反对

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-7-15 08:18:41 | 显示全部楼层
回复【14楼】batsing:
---------------------------------
我用的是WIN 7   32位
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-6 05:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表