我仍在使用Ubuntu 13.10为Nexus 7(石斑鱼)构建Firefox OS
(按照以下说明进行操作:https://wiki.mozilla.org/B2G/Nexus7)
在解决了很多问题之后,我遇到了一个问题。
错误消息显示:
...
../../dist/include/mozilla/BloomFilter.h: In static member function 'static bool mozilla::BloomFilter<KeySize, T>::full(const uint8_t&)':
../../dist/include/mozilla/BloomFilter.h:160:60: error: 'UINT8_MAX' was not declared in this scope
...
make[7]: *** [TestBloomFilter.o] Error 1
make[7]: *** Waiting for unfinished jobs....
...
make[6]: *** [libs] Error 2
我检查了../mbft/BloomFilter.h代码。 我认为可以通过包含一个mozilla / StandardInteger.h
文件来定义UINT8_MAX(1)。 BloomFilter.h部分内容:
#ifndef mozilla_BloomFilter_h_
#define mozilla_BloomFilter_h_
#include "mozilla/Assertions.h"
#include "mozilla/Likely.h"
#include "mozilla/StandardInteger.h"
#include "mozilla/Util.h"
#include <string.h>
...
(2)。 StandardInteger.h内容:
#ifndef mozilla_StandardInteger_h_
#define mozilla_StandardInteger_h_
#if defined(MOZ_CUSTOM_STDINT_H)
# include MOZ_CUSTOM_STDINT_H
#elif defined(_MSC_VER) && _MSC_VER < 1600
# include "mozilla/MSStdInt.h"
#else
# include <stdint.h>
#endif
#endif /* mozilla_StandardInteger_h_ */
我在BloomFilter.h中添加了var UINT8_MAX,但发生了更多类似的错误,例如“未声明UINT32_MAX ...”。 我怎样才能正确包含正确的变量?
谢谢!