4

我正在尝试在 OSX 10.9 上从此源编译京都内阁:

http://fallabs.com/kyotocabinet/pkg/kyotocabinet-1.2.76.tar.gz

但它失败了:

In file included from kcutil.cc:16:
In file included from ./kcutil.h:19:
./kccommon.h:92:10: fatal error: 'tr1/unordered_map' file not found
#include <tr1/unordered_map>
         ^
2 warnings and 1 error generated.
make: *** [kcutil.o] Error 1

据我了解,C++ 库在 OSX 10.9 中发生了变化,但我不确定如何找到解决方案。任何帮助,将不胜感激。

4

1 回答 1

9

我从同事那里得到了一些帮助。您需要修复包含不使用 TR1,看起来 Mavericks 没有 TR1 规范了

kccommon.h中,找到以下代码:

#if __cplusplus > 199711L || defined(__GXX_EXPERIMENTAL_CXX0X__) || defined(_MSC_VER)

#include <unordered_map>
#include <unordered_set>

#else

#include <tr1/unordered_map>
#include <tr1/unordered_set>

namespace std {
using tr1::hash;
using tr1::unordered_map;
using tr1::unordered_set;
}

#endif

删除 if else 语句,以便您得到:

#include <unordered_map>
#include <unordered_set>

再次尝试编译,它对我有用。

于 2014-03-09T01:45:27.717 回答