gem 安装 bson 在 Windows 10 上失败
gem install bson fail on Windows 10
我正在尝试使用 mongoid 制作 ruby hanami api,但由于 bson,安装失败。
我得到这个错误
compiling bytebuf.c
compiling endian.c
In file included from endian.c:18:
bson-endian.h:109:1: error: unknown type name 'uint16_t'; did you mean 'wint_t'?
109 | uint16_t __bson_uint16_swap_slow(uint16_t v);
| ^~~~~~~~
| wint_t
bson-endian.h:109:34: error: unknown type name 'uint16_t'; did you mean
'wint_t'?
109 | uint16_t __bson_uint16_swap_slow(uint16_t v);
| ^~~~~~~~
| wint_t
bson-endian.h:110:1: error: unknown type name 'uint32_t'; did you mean 'wint_t'?
110 | uint32_t __bson_uint32_swap_slow(uint32_t v);
| ^~~~~~~~
| wint_t
bson-endian.h:110:34: error: unknown type name 'uint32_t'; did you mean
'wint_t'?
110 | uint32_t __bson_uint32_swap_slow(uint32_t v);
| ^~~~~~~~
| wint_t
bson-endian.h:111:1: error: unknown type name 'uint64_t'
111 | uint64_t __bson_uint64_swap_slow(uint64_t v);
| ^~~~~~~~
bson-endian.h:111:34: error: unknown type name 'uint64_t'
111 | uint64_t __bson_uint64_swap_slow(uint64_t v);
| ^~~~~~~~
endian.c:35:1: error: unknown type name 'uint16_t'; did you mean 'wint_t'?
35 | uint16_t __bson_uint16_swap_slow(uint16_t v)
| ^~~~~~~~
| wint_t
endian.c:35:34: error: unknown type name 'uint16_t'; did you mean 'wint_t'?
35 | uint16_t __bson_uint16_swap_slow(uint16_t v)
| ^~~~~~~~
| wint_t
endian.c:56:1: error: unknown type name 'uint32_t'; did you mean 'wint_t'?
56 | uint32_t __bson_uint32_swap_slow(uint32_t v)
| ^~~~~~~~
| wint_t
endian.c:56:34: error: unknown type name 'uint32_t'; did you mean 'wint_t'?
56 | uint32_t __bson_uint32_swap_slow(uint32_t v)
| ^~~~~~~~
| wint_t
endian.c:80:1: error: unknown type name 'uint64_t'
80 | uint64_t __bson_uint64_swap_slow(uint64_t v)
| ^~~~~~~~
endian.c:80:34: error: unknown type name 'uint64_t'
80 | uint64_t __bson_uint64_swap_slow(uint64_t v)
| ^~~~~~~~
endian.c: In function '__bson_double_swap_slow':
endian.c:109:4: error: unknown type name 'uint64_t'
109 | uint64_t uv;
| ^~~~~~~~
In file included from endian.c:18:
bson-endian.h:65:57: error: 'uint64_t' undeclared (first use in this function)
65 | # define BSON_UINT64_SWAP_LE_BE(v) __builtin_bswap64 ((uint64_t)v)
| ^~~~~~~~
bson-endian.h:65:57: note: in definition of macro 'BSON_UINT64_SWAP_LE_BE'
65 | # define BSON_UINT64_SWAP_LE_BE(v) __builtin_bswap64 ((uint64_t)v)
| ^~~~~~~~
bson-endian.h:65:57: note: each undeclared identifier is reported only once for
each function it appears in
65 | # define BSON_UINT64_SWAP_LE_BE(v) __builtin_bswap64 ((uint64_t)v)
| ^~~~~~~~
bson-endian.h:65:57: note: in definition of macro 'BSON_UINT64_SWAP_LE_BE'
65 | # define BSON_UINT64_SWAP_LE_BE(v) __builtin_bswap64 ((uint64_t)v)
| ^~~~~~~~
endian.c:112:32: error: expected ')' before 'uv'
112 | uv = BSON_UINT64_SWAP_LE_BE(uv);
| ^~
bson-endian.h:65:66: note: in definition of macro 'BSON_UINT64_SWAP_LE_BE'
65 | # define BSON_UINT64_SWAP_LE_BE(v) __builtin_bswap64 ((uint64_t)v)
| ^
make: *** [Makefile:244: endian.o] Error 1
make failed, exit code 2
我的 ruby 版本是 2.6.5 .
我在互联网上寻找解决方案,但 none 有效。我尝试使用 gem update
更新我的 gem 版本。
我试图在 bson-endian.h.
中添加 #include<stdint.h>
我该如何解决这个问题。
安装 BSON 4.5.0 版 Gem。问题出在 Gem.
的 4.6.0 版中
捆绑包:
添加 gem 'bson', '~> 4.5.0'
到 Gem 文件和 运行 bundle install
.
没有:gem install bson -v 4.5.0
.
我正在尝试使用 mongoid 制作 ruby hanami api,但由于 bson,安装失败。 我得到这个错误
compiling bytebuf.c
compiling endian.c
In file included from endian.c:18:
bson-endian.h:109:1: error: unknown type name 'uint16_t'; did you mean 'wint_t'?
109 | uint16_t __bson_uint16_swap_slow(uint16_t v);
| ^~~~~~~~
| wint_t
bson-endian.h:109:34: error: unknown type name 'uint16_t'; did you mean
'wint_t'?
109 | uint16_t __bson_uint16_swap_slow(uint16_t v);
| ^~~~~~~~
| wint_t
bson-endian.h:110:1: error: unknown type name 'uint32_t'; did you mean 'wint_t'?
110 | uint32_t __bson_uint32_swap_slow(uint32_t v);
| ^~~~~~~~
| wint_t
bson-endian.h:110:34: error: unknown type name 'uint32_t'; did you mean
'wint_t'?
110 | uint32_t __bson_uint32_swap_slow(uint32_t v);
| ^~~~~~~~
| wint_t
bson-endian.h:111:1: error: unknown type name 'uint64_t'
111 | uint64_t __bson_uint64_swap_slow(uint64_t v);
| ^~~~~~~~
bson-endian.h:111:34: error: unknown type name 'uint64_t'
111 | uint64_t __bson_uint64_swap_slow(uint64_t v);
| ^~~~~~~~
endian.c:35:1: error: unknown type name 'uint16_t'; did you mean 'wint_t'?
35 | uint16_t __bson_uint16_swap_slow(uint16_t v)
| ^~~~~~~~
| wint_t
endian.c:35:34: error: unknown type name 'uint16_t'; did you mean 'wint_t'?
35 | uint16_t __bson_uint16_swap_slow(uint16_t v)
| ^~~~~~~~
| wint_t
endian.c:56:1: error: unknown type name 'uint32_t'; did you mean 'wint_t'?
56 | uint32_t __bson_uint32_swap_slow(uint32_t v)
| ^~~~~~~~
| wint_t
endian.c:56:34: error: unknown type name 'uint32_t'; did you mean 'wint_t'?
56 | uint32_t __bson_uint32_swap_slow(uint32_t v)
| ^~~~~~~~
| wint_t
endian.c:80:1: error: unknown type name 'uint64_t'
80 | uint64_t __bson_uint64_swap_slow(uint64_t v)
| ^~~~~~~~
endian.c:80:34: error: unknown type name 'uint64_t'
80 | uint64_t __bson_uint64_swap_slow(uint64_t v)
| ^~~~~~~~
endian.c: In function '__bson_double_swap_slow':
endian.c:109:4: error: unknown type name 'uint64_t'
109 | uint64_t uv;
| ^~~~~~~~
In file included from endian.c:18:
bson-endian.h:65:57: error: 'uint64_t' undeclared (first use in this function)
65 | # define BSON_UINT64_SWAP_LE_BE(v) __builtin_bswap64 ((uint64_t)v)
| ^~~~~~~~
bson-endian.h:65:57: note: in definition of macro 'BSON_UINT64_SWAP_LE_BE'
65 | # define BSON_UINT64_SWAP_LE_BE(v) __builtin_bswap64 ((uint64_t)v)
| ^~~~~~~~
bson-endian.h:65:57: note: each undeclared identifier is reported only once for
each function it appears in
65 | # define BSON_UINT64_SWAP_LE_BE(v) __builtin_bswap64 ((uint64_t)v)
| ^~~~~~~~
bson-endian.h:65:57: note: in definition of macro 'BSON_UINT64_SWAP_LE_BE'
65 | # define BSON_UINT64_SWAP_LE_BE(v) __builtin_bswap64 ((uint64_t)v)
| ^~~~~~~~
endian.c:112:32: error: expected ')' before 'uv'
112 | uv = BSON_UINT64_SWAP_LE_BE(uv);
| ^~
bson-endian.h:65:66: note: in definition of macro 'BSON_UINT64_SWAP_LE_BE'
65 | # define BSON_UINT64_SWAP_LE_BE(v) __builtin_bswap64 ((uint64_t)v)
| ^
make: *** [Makefile:244: endian.o] Error 1
make failed, exit code 2
我的 ruby 版本是 2.6.5 .
我在互联网上寻找解决方案,但 none 有效。我尝试使用 gem update
更新我的 gem 版本。
我试图在 bson-endian.h.
#include<stdint.h>
我该如何解决这个问题。
安装 BSON 4.5.0 版 Gem。问题出在 Gem.
的 4.6.0 版中捆绑包:
添加 gem 'bson', '~> 4.5.0'
到 Gem 文件和 运行 bundle install
.
没有:gem install bson -v 4.5.0
.