Keil uVision4 armcc:使用C ++标准包括<cstdint> </cstdint>

时间:2012-10-29 17:46:12

标签: c++ include stm32 keil

我正在使用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.

显示问题所在。谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

你有什么症状不起作用?即什么是错误消息?可能您只需要using namespace std,或者在所有类型前面加上std ::前缀,因为cstdint标头将其声明放在std名称空间中。

但请注意,cstdint是一个非常新的标头,您的编译器可能不支持。所以你可能不得不接受stdint.h,这同样好。