我正在使用Keil uVision4在STM32F2设备上进行开发。 我正在尝试使用C ++,这应该可以使用随uVision工具链提供的armcc(如果我错了,请纠正我)。 但是uVision拒绝接受标准的C ++包含方式
#include <cstdint>
无效
#include <stdint.h>
完美无缺。 当我在uVision中打开cstdint时(右键单击,打开文档),它会打开文件,但是作为通用文件,例如不是头文件,没有花哨的颜色。
我错过了什么?两个文件都在同一个文件夹中 C:\的Keil \ ARM \ ARMCC \包括 我是否强迫编译器使用c ++(通过附加--cpp)也没有任何区别。 uVision是否无法接受没有结尾的文件作为头文件?
编辑:回答答案(谢谢你的时间!): 错误消息是:
#include <cstdint> and
#include <cstdint.h>
typedef uint32_t u32;
error: #20: identifier uint32_t is undefined
,而
#include <stdint.h> and
#include <stdint>
typedef uint32_t u32;
and
#include <cstdint>
typedef std::uint32_t u32;
works perfectly.
显示问题所在。谢谢你的帮助!
答案 0 :(得分:1)
你有什么症状不起作用?即什么是错误消息?可能您只需要using namespace std
,或者在所有类型前面加上std ::前缀,因为cstdint
标头将其声明放在std
名称空间中。
但请注意,cstdint
是一个非常新的标头,您的编译器可能不支持。所以你可能不得不接受stdint.h
,这同样好。