RT
建立的工程里包含stdint.h这个文件。但是编译是报错。。。
类似的错误很多。但是这个文件是我网上下载的,为什么会有问题?
..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stdint.h(69): error: #20: identifier "__int8" is undefined
typedef __int8 int8_t;
..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stdint.h(70): error: #20: identifier "__int16" is undefined
typedef __int16 int16_t;
..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stdint.h(71): error: #20: identifier "__int32" is undefined
typedef __int32 int32_t;
..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stdint.h(93): error: #20: identifier "uint8_t" is undefined
typedef uint8_t uint_fast8_t;
..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stdint.h(94): error: #20: identifier "uint16_t" is undefined
typedef uint16_t uint_fast16_t;
..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stdint.h(95): error: #20: identifier "uint32_t" is undefined
typedef uint32_t uint_fast32_t;
..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_wwdg.h(85): error: #20: identifier "uint32_t" is undefined
void WWDG_SetPrescaler(uint32_t WWDG_Prescaler);
..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_wwdg.h(86): error: #20: identifier "uint8_t" is undefined
void WWDG_SetWindowValue(uint8_t WindowValue);
..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_wwdg.h(88): error: #20: identifier "uint8_t" is undefined
keil中编译stdint.h报错 identifier "__int8" is undefined是设置错误造成的,解决方法为:
1、点击魔术棒按钮Target Options...。
2、点击选项卡output。
3、Name of Executable 名字中间的空格用“_”下划线代替。
4、重新编译ok。
我使用的Keil4,STM32F103芯片,曾经也出现过类似问题,现把我当时的原因列出来,你检测一下你的程序是否是同样的原因。
出错误的地方不是在stdint.h文件中,而是它的上一级:有宏定义__int8 __int16 __int32 uint8_t等这类名称的文件,假设文件名 A(我猜测可能是 stm32f4xx.h之类的文件名)。
如果不出意外的话,你从网上下载的程序包里面应该有一个文件,它的名字是A,该文件里面会有:
typedef singed char __int8; //宏定义 __int8这样功能的程序语句,如果你把这个文件A添加到工程中,应该就能消除这些错误。
但是现在,你的工程中已经有了一个名字为A但内容却不太一样的文件(为做区分,这个文件可以称为A2),而且查看A2的路径可以发现,它指向的是你的Keil软件安装目录下,比如你的Keil软件安装在C盘根目录下,则它的路径就是:C:\Keil\ARM.....之类的。
出现这种情况的原因是:你没有把A文件的路径告诉Keil软件,它在链接的时候找不到A文件,就只好把同名字的系统文件A2添加到了工程中。
那么你现要需要做的,就是把A2文件从你的工程中删掉,把A文件加载进来。具体操件如下图示:
1、在Project->Options for Target对话框中的C/C++选项卡中添加你的目标文件的寻找路径
2、
3、
4、选中你从网上下载的程序文件夹
(
注1:我使用的Keil4版本,需要将路径详细到最低级文件夹,即该文件夹中直接就是你想要的程序文件,Keil软件不会查找路径中的子文件夹。
注2:必须把你需要的.c文件和.h头文件都添加进来。
)
5、添加完成后,重新编译即可。
本回答被提问者采纳