我试图在OSX 10.9上从这个源代码编译kyoto cabinet:
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
Run Code Online (Sandbox Code Playgroud)
我的理解是,OSX 10.9中的C++库发生了变化,但我不确定如何导航到解决方案.任何帮助,将不胜感激.
我得到了一位同事的帮助.您需要修复包含不使用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
Run Code Online (Sandbox Code Playgroud)
删除if else语句,以便留下:
#include <unordered_map>
#include <unordered_set>
Run Code Online (Sandbox Code Playgroud)
尝试再次编译,它对我有用.
归档时间: |
|
查看次数: |
1124 次 |
最近记录: |