在stdint.h中找不到符号

时间:2013-05-25 09:57:53

标签: c++ cstdint apportable

当我使用Apportable作为我的C ++源代码时,它找不到stdint.h中定义的符号。

error: use of undeclared identifier 'UINT8_MAX'

代码与Xcode配合得很好,而这个错误只在Apportable上引发。我添加了#include <cstdint>,但没有效果。

这是我当前的.cpp文件。

#include <cstdint>
#include "Pixel.h"

namespace
Eonil
{
    namespace
    Graphics
    {
        using namespace std;

        Pixel::Pixel(glm::vec4 const vector)
        {
            r   =   vector.r * ((Scalar)UINT8_MAX);
            g   =   vector.g * ((Scalar)UINT8_MAX);
            b   =   vector.b * ((Scalar)UINT8_MAX);
            a   =   vector.a * ((Scalar)UINT8_MAX);
        }

        glm::vec4 const
        Pixel::vector() const
        {
            return  glm::vec4(((Scalar)r) / ((Scalar)UINT8_MAX),
                              ((Scalar)g) / ((Scalar)UINT8_MAX),
                              ((Scalar)b) / ((Scalar)UINT8_MAX),
                              ((Scalar)a) / ((Scalar)UINT8_MAX));
        }
    }
}

我错过了什么?

1 个答案:

答案 0 :(得分:4)

定义__STDC_LIMIT_MACROS时,宏可用(另外__STDC_CONSTANT_MACROS似乎也丢失了)。编译c ++时,这可能是错误的门控或丢失。 Objective-C和C为UINT8_MAX和附带的宏提供了这些定义。现在,您可以全局定义这两个宏,它应该对您的项目没有任何不良影响。