c – 从源代码构建mongodb时出错
我正在尝试从源代码构建
mongodb并获得一些错误.
这是整个输出的pastebin: 第一个错误是 endian.h does not define __BYTE_ORDER nor BYTE_ORDER. Cannot determine endianness. 而所有其他错误就像 error: template with C linkage error: template specialization with C linkage 我的配置是: > Debian 8 64位 已安装的依赖项 sudo apt-get build-dep mongodb 我试图在CentOS 7下构建它并获得相同的结果. 解决方法
关于第一个错误
sys / param.h标头通常定义符号__BYTE_ORDER,__BIG_ENDIAN,__LITTLE_ENDIAN和__PDP_ENDIAN.您可以通过执行以下操作来测试字节顺序: sys / param.h标头通常定义符号__BYTE_ORDER,__LITTLE_ENDIAN和__PDP_ENDIAN.您可以通过执行以下操作来测试字节顺序: #include <sys/param.h> #ifdef __BYTE_ORDER # if __BYTE_ORDER == __LITTLE_ENDIAN # define I_AM_LITTLE_ENDIAN # else # if __BYTE_ORDER == __BIG_ENDIAN # define I_AM_BIG_ENDIAN # else Error: unknown byte order! # endif # endif #endif /* __BYTE_ORDER */ 如果未定义__BYTE_ORDER,您可能需要测试BYTE_ORDER,BIG_ENDIAN和LITTLE_ENDIAN的存在. Linux将这些定义为具有下划线的版本的同义词,显然是为了与BSD Unix兼容. 如果没有定义,您可以尝试以下方法: #if defined (i386) || defined (__i386__) || defined (_M_IX86) || defined (vax) || defined (__alpha) # define I_AM_LITTLE_ENDIAN #endif Read more (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |