Saturday, June 28, 2025
HomeBitcoinCompiling bitcoin error : A compiler with help for C++17 language options...

Compiling bitcoin error : A compiler with help for C++17 language options is required


I’m studying the “Mastering bitcoin: Programming the Open Blockchain” e-book by Andreas Antonopolous. Within the chapter about compiling bitcoin, the directions had been to execute first

./autogen.sh

and the output was

glibtoolize: placing auxiliary information in AC_CONFIG_AUX_DIR, 'build-aux'.
glibtoolize: copying file 'build-aux/ltmain.sh'
glibtoolize: placing macros in AC_CONFIG_MACRO_DIRS, 'build-aux/m4'.
glibtoolize: copying file 'build-aux/m4/libtool.m4'
glibtoolize: copying file 'build-aux/m4/ltoptions.m4'
glibtoolize: copying file 'build-aux/m4/ltsugar.m4'
glibtoolize: copying file 'build-aux/m4/ltversion.m4'
glibtoolize: copying file 'build-aux/m4/lt~out of date.m4'
configure.ac:45: putting in 'build-aux/compile'
configure.ac:28: putting in 'build-aux/lacking'
Makefile.am: putting in 'build-aux/depcomp'
glibtoolize: placing auxiliary information in AC_CONFIG_AUX_DIR, 'build-aux'.
glibtoolize: copying file 'build-aux/ltmain.sh'
glibtoolize: placing macros in AC_CONFIG_MACRO_DIRS, 'build-aux/m4'.
glibtoolize: copying file 'build-aux/m4/libtool.m4'
glibtoolize: copying file 'build-aux/m4/ltoptions.m4'
glibtoolize: copying file 'build-aux/m4/ltsugar.m4'
glibtoolize: copying file 'build-aux/m4/ltversion.m4'
glibtoolize: copying file 'build-aux/m4/lt~out of date.m4'
configure.ac:36: warning: The macro `AC_PROG_CC_C89' is out of date.
configure.ac:36: It's best to run autoupdate.
./lib/autoconf/c.m4:1652: AC_PROG_CC_C89 is expanded from...
configure.ac:36: the highest stage
configure.ac:15: putting in 'build-aux/compile'
configure.ac:9: putting in 'build-aux/lacking'
Makefile.am: putting in 'build-aux/depcomp'
glibtoolize: placing auxiliary information in AC_CONFIG_AUX_DIR, 'build-aux'.
glibtoolize: copying file 'build-aux/ltmain.sh'
glibtoolize: placing macros in AC_CONFIG_MACRO_DIRS, 'build-aux/m4'.
glibtoolize: copying file 'build-aux/m4/libtool.m4'
glibtoolize: copying file 'build-aux/m4/ltoptions.m4'
glibtoolize: copying file 'build-aux/m4/ltsugar.m4'
glibtoolize: copying file 'build-aux/m4/ltversion.m4'
glibtoolize: copying file 'build-aux/m4/lt~out of date.m4'
configure.ac:812: warning: $as_echo is out of date; use AS_ECHO(["message"]) as a substitute
lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from...
lib/m4sugar/m4sh.m4:699: AS_IF is expanded from...
./lib/autoconf/normal.m4:2249: AC_CACHE_VAL is expanded from...
./lib/autoconf/normal.m4:2270: AC_CACHE_CHECK is expanded from...
build-aux/m4/ax_pthread.m4:89: AX_PTHREAD is expanded from...
configure.ac:812: the highest stage
configure.ac:94: putting in 'build-aux/compile'
configure.ac:48: putting in 'build-aux/lacking'
src/Makefile.am: putting in 'build-aux/depcomp'

Whereas the output aligned with anticipated output from the directions, the following command

./configure

Exits with an error that C++17 is not obtainable from the compilers on the machine. The output was

checking for pkg-config... /usr/native/bin/pkg-config
checking pkg-config is not less than model 0.9.0... sure
checking construct system kind... x86_64-apple-darwin19.6.0
checking host system kind... x86_64-apple-darwin19.6.0
checking for a BSD-compatible set up... /usr/bin/set up -c
checking whether or not construct surroundings is sane... sure
checking for a race-free mkdir -p... ./build-aux/install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether or not make units $(MAKE)... sure
checking whether or not make helps nested variables... sure
checking whether or not to allow maintainer-specific parts of Makefiles... sure
checking whether or not make helps nested variables... (cached) sure
checking for g++... g++
checking whether or not the C++ compiler works... sure
checking for C++ compiler default output file identify... a.out
checking for suffix of executables... 
checking whether or not we're cross compiling... no
checking for suffix of object information... o
checking whether or not the compiler helps GNU C++... sure
checking whether or not g++ accepts -g... sure
checking for g++ choice to allow C++11 options... none wanted
checking whether or not make helps the embody directive... sure (GNU fashion)
checking dependency fashion of g++... gcc3
checking whether or not g++ helps C++17 options with -std=c++17... no
checking whether or not g++ helps C++17 options with +std=c++17... no
checking whether or not g++ helps C++17 options with -h std=c++17... no
checking whether or not g++ helps C++17 options with -std=c++1z... no
checking whether or not g++ helps C++17 options with +std=c++1z... no
checking whether or not g++ helps C++17 options with -h std=c++1z... no
configure: error: *** A compiler with help for C++17 language options is required.

and on working

g++ --version 

offers

Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-
dir=/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/embody/c++/4.2.1
Apple clang model 12.0.0 (clang-1200.0.32.29)
Goal: x86_64-apple-darwin19.6.0
Thread mannequin: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

and g++-11 --version

offers

g++-11 (Homebrew GCC 11.2.0) 11.2.0
Copyright (C) 2021 Free Software program Basis, Inc.
That is free software program; see the supply for copying situations.  There may be NO
guarantee; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Now each GNU GCC and in addition Clang compiler variations I’ve help each C++ 17 commonplace and the related flags, why does this error occur?

I made certain my path is ready accurately and in addition different cpp packages execute accurately. I’m unable to seek out the error right here. Can anybody please information me?

That is my first query, first one even on stack trade as an entire. Please excuse any apparent concepts I missed.

I’m utilizing the supply from repo and model v22.0. Thanks!

RELATED ARTICLES

Most Popular

Recent Comments