[GNC-dev] Master now requires C++17

John Ralls jralls at ceridwen.us
Sat Oct 12 20:52:47 EDT 2019

After a bit of a false start last week I've set the master branch--the one that we'll release in a few months as GnuCash 4.0--to build its C++ files with C++17.

From a coding standpoint that pretty much affects only Geert and me: No one else is actively working with C++.

From a building and using standpoint it means that you're going to need a fairly recent distro or operating system release: The required compilers are gcc 8.0 and clang 6.0, and boost must in general be 1.67 or later. I say in general because we found that although Ubuntu 18.04 *nominally* ships with boost 1.65, they've patched the one library (boost::locale) that had a C++17 incompatibility until 1.67 so GnuCash builds. There may be others that have done something similar.

Other distros we tested on: Debian Buster, Bullseye, and Sid; Fedora 28, 29, and 30; OpenSuSE Tumbleweed (Leap 15.2 doesn't work). OpenBSD doesn't work (boost is too old).

MacOS will require Sierra or later.

John Ralls

More information about the gnucash-devel mailing list