如何修复 ubuntu 16.04 上的 make 错误
How to fix make errors on ubuntu 16.04
尝试在 ubuntu:16.04 上 dockerize bitcoin-sv,但最后一步出错。
一段 Dockerfile :
RUN mkdir boost \
&& cd boost \
&& wget https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.gz \
&& tar -xzvf boost_1_70_0.tar.gz \
&& cd boost_1_70_0 \
&& ./bootstrap.sh \
&& ./b2 \
&& ./b2 install \
&& cd ../../ \
&& git clone https://github.com/bitcoin-sv/bitcoin-sv \
&& cd bitcoin-sv \
&& ./autogen.sh \
&& mkdir build \
&& cd build \
&& ../configure \
&& make <------------- error on this final step
错误:
Makefile:4415: recipe for target 'rpc/libbitcoin_cli_a-client.o' failed
make[2]: *** [rpc/libbitcoin_cli_a-client.o] Error 1
make[2]: Leaving directory '/bitcoin-sv/build/src'
Makefile:8455: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/bitcoin-sv/build/src'
Makefile:660: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
阅读here可能是内存不足。如何解决?
又记录了一个错误。 docker 机器
内存不足
../../src/validation.cpp:4046:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
cacheSize > std::max(static_cast<uint64_t>((9 * nTotalSpace) / 10),
~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nTotalSpace - MAX_BLOCK_COINSDB_USAGE * ONE_MEBIBYTE);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
g++: internal compiler error: Killed (program cc1plus)
错误 g++: internal compiler error: Killed (program cc1plus)
几乎总是由于内存太少 - 正如 Jon 在 Whosebug post 中更详尽地解释的那样。
运行 在 ubuntu 上(不是指在 ubuntu 上的虚拟机中)您的机器可能内存不足,因为 docker 可以访问整个内存据我所知 Linux 主机。如果 运行 在虚拟机中,请确保它有足够的可用内存,然后它可用于 docker。
对于 macOS 或 Windows,您可以通过跟随 Roberts 到(不太正确短语)Whosebug 问题 'How to assign more memory to docker container'.
尝试在 ubuntu:16.04 上 dockerize bitcoin-sv,但最后一步出错。 一段 Dockerfile :
RUN mkdir boost \
&& cd boost \
&& wget https://dl.bintray.com/boostorg/release/1.70.0/source/boost_1_70_0.tar.gz \
&& tar -xzvf boost_1_70_0.tar.gz \
&& cd boost_1_70_0 \
&& ./bootstrap.sh \
&& ./b2 \
&& ./b2 install \
&& cd ../../ \
&& git clone https://github.com/bitcoin-sv/bitcoin-sv \
&& cd bitcoin-sv \
&& ./autogen.sh \
&& mkdir build \
&& cd build \
&& ../configure \
&& make <------------- error on this final step
错误:
Makefile:4415: recipe for target 'rpc/libbitcoin_cli_a-client.o' failed
make[2]: *** [rpc/libbitcoin_cli_a-client.o] Error 1
make[2]: Leaving directory '/bitcoin-sv/build/src'
Makefile:8455: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/bitcoin-sv/build/src'
Makefile:660: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
阅读here可能是内存不足。如何解决?
又记录了一个错误。 docker 机器
内存不足../../src/validation.cpp:4046:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
cacheSize > std::max(static_cast<uint64_t>((9 * nTotalSpace) / 10),
~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nTotalSpace - MAX_BLOCK_COINSDB_USAGE * ONE_MEBIBYTE);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
g++: internal compiler error: Killed (program cc1plus)
错误 g++: internal compiler error: Killed (program cc1plus)
几乎总是由于内存太少 - 正如 Jon 在 Whosebug post 中更详尽地解释的那样。
运行 在 ubuntu 上(不是指在 ubuntu 上的虚拟机中)您的机器可能内存不足,因为 docker 可以访问整个内存据我所知 Linux 主机。如果 运行 在虚拟机中,请确保它有足够的可用内存,然后它可用于 docker。
对于 macOS 或 Windows,您可以通过跟随 Roberts