[GNC] Cannot build GNUCash 5.10 for GNU/Linux

Shiftag shiftag at nanotek.info
Sun Apr 20 09:18:59 EDT 2025


Hello,

I have an issue building GnuCash 5.10 on Linux. I'm having the following 
error at make step:

[ 21%] Building C object 
libgnucash/app-utils/CMakeFiles/gnc-app-utils.dir/gnc-prefs-utils.c.o
[ 21%] Building CXX object 
libgnucash/app-utils/CMakeFiles/gnc-app-utils.dir/gnc-quotes.cpp.o
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:136:9: error: 
‘environment’ in namespace ‘bp’ does not name a type
   136 |     bp::environment m_env;
       |         ^~~~~~~~~~~
In file included from /usr/include/boost/process/v2/environment.hpp:28,
                  from /usr/include/boost/process/environment.hpp:1,
                  from 
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:23:
/usr/include/boost/process/v2/detail/environment_posix.hpp:28:11: note: 
‘boost::process::v2::environment’ declared here
    28 | namespace environment
       |           ^~~~~~~~~~~
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp: In 
constructor ‘GncFQQuoteSource::GncFQQuoteSource()’:
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:155:11: error: 
‘search_path’ is not a member of ‘bp’
   155 | c_cmd{bp::search_path("perl")},
       |           ^~~~~~~~~~~
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:156:27: error: 
class ‘GncFQQuoteSource’ does not have any field named ‘m_env’
   156 | m_version{}, m_sources{}, m_env{boost::this_process::environment()}
       |                           ^~~~~
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:156:40: error: 
‘boost::this_process’ has not been declared
   156 | m_version{}, m_sources{}, m_env{boost::this_process::environment()}
       |                                        ^~~~~~~~~~~~
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:155:1: error: 
no matching function for call to 
‘boost::filesystem::path::path(<brace-enclosed initializer list>)’
   155 | c_cmd{bp::search_path("perl")},
       | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/boost/process/v2/detail/config.hpp:65,
                  from /usr/include/boost/process/v2/environment.hpp:13:
/usr/include/boost/filesystem/path.hpp:452:5: note: candidate: 
‘template<class InputIterator, class> 
boost::filesystem::path::path(InputIterator, InputIterator, const 
codecvt_type&)’
   452 |     path(InputIterator begin, InputIterator end, codecvt_type 
const& cvt)
       |     ^~~~
/usr/include/boost/filesystem/path.hpp:452:5: note:   candidate expects 
3 arguments, 1 provided
/usr/include/boost/filesystem/path.hpp:433:5: note: candidate: 
‘template<class InputIterator, class> 
boost::filesystem::path::path(InputIterator, InputIterator)’
   433 |     path(InputIterator begin, InputIterator end)
       |     ^~~~
/usr/include/boost/filesystem/path.hpp:433:5: note:   candidate expects 
2 arguments, 1 provided
/usr/include/boost/filesystem/path.hpp:372:14: note: candidate: 
‘template<class Source, class> boost::filesystem::path::path(const 
Source&, const codecvt_type&)’
   372 |     explicit path(Source const& source, codecvt_type const& cvt)
       |              ^~~~
/usr/include/boost/filesystem/path.hpp:372:14: note:   candidate expects 
2 arguments, 1 provided
/usr/include/boost/filesystem/path.hpp:358:5: note: candidate: 
‘template<class Source, class> boost::filesystem::path::path(const Source&)’
   358 |     path(Source const& source)
       |     ^~~~
/usr/include/boost/filesystem/path.hpp:358:5: note:   template argument 
deduction/substitution failed:
/usr/include/boost/filesystem/path.hpp:422:5: note: candidate: 
‘boost::filesystem::path::path(const value_type*, const value_type*, 
const codecvt_type&)’
   422 |     path(const value_type* begin, const value_type* end, 
codecvt_type const&) : m_pathname(begin, end) {}
       |     ^~~~
/usr/include/boost/filesystem/path.hpp:422:5: note:   candidate expects 
3 arguments, 1 provided
/usr/include/boost/filesystem/path.hpp:421:5: note: candidate: 
‘boost::filesystem::path::path(const value_type*, const value_type*)’
   421 |     path(const value_type* begin, const value_type* end) : 
m_pathname(begin, end) {}
       |     ^~~~
/usr/include/boost/filesystem/path.hpp:421:5: note:   candidate expects 
2 arguments, 1 provided
/usr/include/boost/filesystem/path.hpp:402:5: note: candidate: 
‘boost::filesystem::path::path(string_type&&, const codecvt_type&)’
   402 |     path(string_type&& s, codecvt_type const&) noexcept : 
m_pathname(static_cast< string_type&& >(s))
       |     ^~~~
/usr/include/boost/filesystem/path.hpp:402:5: note:   candidate expects 
2 arguments, 1 provided
/usr/include/boost/filesystem/path.hpp:399:5: note: candidate: 
‘boost::filesystem::path::path(string_type&&)’
   399 |     path(string_type&& s) noexcept : m_pathname(static_cast< 
string_type&& >(s))
       |     ^~~~
/usr/include/boost/filesystem/path.hpp:399:5: note:   conversion of 
argument 1 would be ill-formed:
/usr/include/boost/filesystem/path.hpp:380:5: note: candidate: 
‘boost::filesystem::path::path(boost::filesystem::path&&, const 
codecvt_type&)’
   380 |     path(path&& p, codecvt_type const&) noexcept : 
m_pathname(static_cast< string_type&& >(p.m_pathname))
       |     ^~~~
/usr/include/boost/filesystem/path.hpp:380:5: note:   candidate expects 
2 arguments, 1 provided
/usr/include/boost/filesystem/path.hpp:377:5: note: candidate: 
‘boost::filesystem::path::path(boost::filesystem::path&&)’
   377 |     path(path&& p) noexcept : m_pathname(static_cast< 
string_type&& >(p.m_pathname))
       |     ^~~~
/usr/include/boost/filesystem/path.hpp:377:5: note:   conversion of 
argument 1 would be ill-formed:
/usr/include/boost/filesystem/path.hpp:346:5: note: candidate: 
‘boost::filesystem::path::path(const std::basic_string_view<char>&, 
const codecvt_type&)’
   346 |     path(std::basic_string_view< value_type > const& s, 
codecvt_type const&) : m_pathname(s) {}
       |     ^~~~
/usr/include/boost/filesystem/path.hpp:346:5: note:   candidate expects 
2 arguments, 1 provided
/usr/include/boost/filesystem/path.hpp:345:5: note: candidate: 
‘boost::filesystem::path::path(const std::basic_string_view<char>&)’
   345 |     path(std::basic_string_view< value_type > const& s) : 
m_pathname(s) {}
       |     ^~~~
/usr/include/boost/filesystem/path.hpp:345:5: note:   conversion of 
argument 1 would be ill-formed:
/usr/include/boost/filesystem/path.hpp:343:5: note: candidate: 
‘boost::filesystem::path::path(const string_type&, const codecvt_type&)’
   343 |     path(string_type const& s, codecvt_type const&) : 
m_pathname(s) {}
       |     ^~~~
/usr/include/boost/filesystem/path.hpp:343:5: note:   candidate expects 
2 arguments, 1 provided
/usr/include/boost/filesystem/path.hpp:342:5: note: candidate: 
‘boost::filesystem::path::path(const string_type&)’
   342 |     path(string_type const& s) : m_pathname(s) {}
       |     ^~~~
/usr/include/boost/filesystem/path.hpp:342:5: note:   conversion of 
argument 1 would be ill-formed:
/usr/include/boost/filesystem/path.hpp:341:5: note: candidate: 
‘boost::filesystem::path::path(const value_type*, const codecvt_type&)’
   341 |     path(const value_type* s, codecvt_type const&) : 
m_pathname(s) {}
       |     ^~~~
/usr/include/boost/filesystem/path.hpp:341:5: note:   candidate expects 
2 arguments, 1 provided
/usr/include/boost/filesystem/path.hpp:340:5: note: candidate: 
‘boost::filesystem::path::path(const value_type*)’
   340 |     path(const value_type* s) : m_pathname(s) {}
       |     ^~~~
/usr/include/boost/filesystem/path.hpp:340:5: note:   conversion of 
argument 1 would be ill-formed:
/usr/include/boost/filesystem/path.hpp:338:5: note: candidate: 
‘boost::filesystem::path::path(const boost::filesystem::path&, const 
codecvt_type&)’
   338 |     path(path const& p, codecvt_type const&) : 
m_pathname(p.m_pathname) {}
       |     ^~~~
/usr/include/boost/filesystem/path.hpp:338:5: note:   candidate expects 
2 arguments, 1 provided
/usr/include/boost/filesystem/path.hpp:337:5: note: candidate: 
‘boost::filesystem::path::path(const boost::filesystem::path&)’
   337 |     path(path const& p) : m_pathname(p.m_pathname) {}
       |     ^~~~
/usr/include/boost/filesystem/path.hpp:337:5: note:   conversion of 
argument 1 would be ill-formed:
/usr/include/boost/filesystem/path.hpp:336:5: note: candidate: 
‘boost::filesystem::path::path()’
   336 |     path() noexcept {}
       |     ^~~~
/usr/include/boost/filesystem/path.hpp:336:5: note:   candidate expects 
0 arguments, 1 provided
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp: In member 
function ‘QuoteResult GncFQQuoteSource::run_cmd(const StrVec&, const 
std::string&) const’:
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:210:30: error: 
‘buffer’ is not a member of ‘bp’
   210 |         auto input_buf = bp::buffer (json_string);
       |                              ^~~~~~
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:210:30: note: 
suggested alternatives:
In file included from 
/usr/include/boost/asio/detail/buffer_sequence_adapter.hpp:22,
                  from 
/usr/include/boost/asio/detail/reactive_descriptor_service.hpp:31,
                  from 
/usr/include/boost/asio/posix/basic_descriptor.hpp:37,
                  from 
/usr/include/boost/asio/posix/basic_stream_descriptor.hpp:19,
                  from 
/usr/include/boost/process/v2/detail/process_handle_fd.hpp:28,
                  from /usr/include/boost/process/v2/process_handle.hpp:15,
                  from /usr/include/boost/process/v2/ext/exe.hpp:12,
                  from /usr/include/boost/process/v2/process.hpp:18,
                  from /usr/include/boost/process/v2/execute.hpp:8,
                  from /usr/include/boost/process/execute.hpp:1,
                  from /usr/include/boost/process.hpp:19,
                  from 
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:42:
/usr/include/boost/asio/registered_buffer.hpp:287:32: note: 
‘boost::asio::buffer’
   287 | inline const_registered_buffer buffer(
       |                                ^~~~~~
In file included from 
/usr/include/boost/iostreams/detail/streambuf/indirect_streambuf.hpp:24,
                  from /usr/include/boost/iostreams/stream_buffer.hpp:22,
                  from 
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:47:
/usr/include/boost/iostreams/detail/buffer.hpp:83:7: note: 
‘boost::iostreams::detail::buffer’
    83 | class buffer : public basic_buffer<Ch, Alloc> {
       |       ^~~~~~
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:211:13: error: 
‘child’ is not a member of ‘bp’
   211 |         bp::child process;
       |             ^~~~~
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:212:9: error: 
‘process’ was not declared in this scope
   212 |         process = bp::child(c_cmd, args,
       |         ^~~~~~~
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:212:9: note: 
suggested alternatives:
/usr/include/boost/process/v2/detail/config.hpp:85:1: note: ‘boost::process’
    85 | BOOST_PROCESS_V2_BEGIN_NAMESPACE
       | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/process/v2/process.hpp:393:25: note: 
‘boost::process::v2::process’
   393 | typedef basic_process<> process;
       |                         ^~~~~~~
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:212:23: error: 
‘child’ is not a member of ‘bp’
   212 |         process = bp::child(c_cmd, args,
       |                       ^~~~~
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:213:33: error: 
‘std_out’ is not a member of ‘bp’
   213 |                             bp::std_out > out_buf,
       |                                 ^~~~~~~
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:214:33: error: 
‘std_err’ is not a member of ‘bp’
   214 |                             bp::std_err > err_buf,
       |                                 ^~~~~~~
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:215:33: error: 
‘std_in’ is not a member of ‘bp’
   215 |                             bp::std_in < input_buf,
       |                                 ^~~~~~
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:219:29: error: 
‘m_env’ was not declared in this scope
   219 |                             m_env,
       |                             ^~~~~
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp: In member 
function ‘void GncFQQuoteSource::set_api_key(const char*, const char*)’:
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:264:9: error: 
‘m_env’ was not declared in this scope
   264 |         m_env[api_env] = key;
       |         ^~~~~
/tmp/SBo/gnucash-5.10/libgnucash/app-utils/gnc-quotes.cpp:269:38: error: 
‘m_env’ was not declared in this scope
   269 |         if (api_key == av_api_key && m_env.find(api_env) == 
m_env.end())
       |                                      ^~~~~
make[2]: *** 
[libgnucash/app-utils/CMakeFiles/gnc-app-utils.dir/build.make:182: 
libgnucash/app-utils/CMakeFiles/gnc-app-utils.dir/gnc-quotes.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:3456: 
libgnucash/app-utils/CMakeFiles/gnc-app-utils.dir/all] Error 2
make: *** [Makefile:166: all] Error 2


I'm not having any error or warning before those issues. Do I missed a 
library ?




More information about the gnucash-user mailing list