2

当我将 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));
        }
    }
}

我错过了什么?

4

1 回答 1

4

定义 __STDC_LIMIT_MACROS 时,宏可用(此外,似乎也缺少 __STDC_CONSTANT_MACROS)。编译 c++ 时,这可能是错误的门控或丢失。Objective-C 和 C 采用了 UINT8_MAX 和随附宏的这些定义。现在,您可以全局定义这两个宏,它应该不会对您的项目产生不良影响。

于 2013-05-25T19:18:49.820 回答