compile errors
John Ralls
jralls at ceridwen.us
Fri Nov 18 19:50:53 EST 2016
> On Nov 18, 2016, at 2:49 PM, John Ralls <jralls at ceridwen.us> wrote:
>
>
>> On Nov 18, 2016, at 12:53 PM, Alex Aycinena <alex.aycinena at gmail.com> wrote:
>>
>>
>>
>> On Thu, Nov 17, 2016 at 5:10 PM, John Ralls <jralls at ceridwen.us <mailto:jralls at ceridwen.us>> wrote:
>>
>>> On Nov 17, 2016, at 4:54 PM, Alex Aycinena <alex.aycinena at gmail.com <mailto:alex.aycinena at gmail.com>> wrote:
>>>
>>> Hi,
>>>
>>> I get the following compile errors today:
>>>
>> <snip>
>>>
>>> Am I missing a library or something?
>>
>> Alex,
>>
>> That didn't take long! ;-)
>>
>> Only if your compiler doesn't support C++11. More likely your libstdc++ doesn't pull in <Algorithms> when <String> is included.
>>
>> Travis puked test-backend-dbi-basic.c for a similar complaint, this one for std::for_each. I've just pushed what I hope will fix that and your error.
>>
>> Regards,
>> John Ralls
>>
>>
>> John,
>>
>> After pulling in your push, I now get:
>>
>> /home/gnucash-dev/gitcheckouts/gnucash-clean/src/backend/dbi/gnc-dbiproviderimpl.hpp: In member function ‘StrVec GncDbiProviderImpl<T>::get_table_list(dbi_conn, const string&) [with DbType T = (DbType)0; StrVec = std::vector<std::__cxx11::basic_string<char> >; dbi_conn = void*; std::__cxx11::string = std::__cxx11::basic_string<char>]’:
>> /home/gnucash-dev/gitcheckouts/gnucash-clean/src/backend/dbi/gnc-dbiproviderimpl.hpp:245:71: error: cannot convert ‘std::vector<std::__cxx11::basic_string<char> >::iterator {aka __gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*, std::vector<std::__cxx11::basic_string<char> > >}’ to ‘const char*’ for argument ‘1’ to ‘int remove(const char*)’
>> auto end = std::remove(list.begin(), list.end(), "sqlite_sequence");
>> ^
>> /home/gnucash-dev/gitcheckouts/gnucash-clean/src/backend/dbi/gnc-dbiproviderimpl.hpp: In member function ‘StrVec GncDbiProviderImpl<T>::get_table_list(dbi_conn, const string&) [with DbType T = (DbType)2; StrVec = std::vector<std::__cxx11::basic_string<char> >; dbi_conn = void*; std::__cxx11::string = std::__cxx11::basic_string<char>]’:
>> /home/gnucash-dev/gitcheckouts/gnucash-clean/src/backend/dbi/gnc-dbiproviderimpl.hpp:266:16: error: ‘remove_if’ is not a member of ‘std’
>> auto end = std::remove_if (list.begin(), list.end(),
>> ^~~
>> /home/gnucash-dev/gitcheckouts/gnucash-clean/src/backend/dbi/gnc-dbisqlconnection.cpp: In member function ‘bool GncDbiSqlConnection::table_operation(const StrVec&, TableOpType)’:
>> /home/gnucash-dev/gitcheckouts/gnucash-clean/src/backend/dbi/gnc-dbisqlconnection.cpp:655:54: error: no matching function for call to ‘find(std::vector<std::__cxx11::basic_string<char> >::iterator, std::vector<std::__cxx11::basic_string<char> >::iterator, std::__cxx11::basic_string<char>&)’
>> all_tables.end(), table) != all_tables.end())
>> ^
>> In file included from /usr/include/c++/6.2.1/bits/locale_facets.h:48:0,
>> from /usr/include/c++/6.2.1/bits/basic_ios.h:37,
>> from /usr/include/c++/6.2.1/ios:44,
>> from /usr/include/c++/6.2.1/istream:38,
>> from /usr/include/c++/6.2.1/sstream:38,
>> from /home/gnucash-dev/gitcheckouts/gnucash-clean/src/backend/sql/gnc-sql-backend.hpp:35,
>> from /home/gnucash-dev/gitcheckouts/gnucash-clean/src/backend/dbi/gnc-backend-dbi.hpp:37,
>> from /home/gnucash-dev/gitcheckouts/gnucash-clean/src/backend/dbi/gnc-dbisqlconnection.hpp:30,
>> from /home/gnucash-dev/gitcheckouts/gnucash-clean/src/backend/dbi/gnc-dbisqlconnection.cpp:31:
>> /usr/include/c++/6.2.1/bits/streambuf_iterator.h:369:5: note: candidate: template<class _CharT2> typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT> >::__type std::find(std::istreambuf_iterator<_CharT>, std::istreambuf_iterator<_CharT>, const _CharT2&)
>> find(istreambuf_iterator<_CharT> __first,
>> ^~~~
>> /usr/include/c++/6.2.1/bits/streambuf_iterator.h:369:5: note: template argument deduction/substitution failed:
>> /home/gnucash-dev/gitcheckouts/gnucash-clean/src/backend/dbi/gnc-dbisqlconnection.cpp:655:54: note: ‘__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char>*, std::vector<std::__cxx11::basic_string<char> > >’ is not derived from ‘std::istreambuf_iterator<_CharT>’
>> all_tables.end(), table) != all_tables.end())
>> ^
>> At global scope:
>> cc1plus: error: unrecognized command line option ‘-Wno-deprecated-register’ [-Werror]
>> cc1plus: all warnings being treated as errors
>> Makefile:678: recipe for target 'gnc-dbisqlconnection.lo' failed
>>
>>
>> I'm building on Fedora 24, by the way.
>
> Alex,
>
> My first guess would be that gnc-dbiproviderimpl.hpp and gnc-dbisqlconnection.hpp need the same treatment, to add "#include <algorithm> to the other libstdc++ headers. I'll have to set up a fedora24 VM to duplicate your build environment, so it will take a few hours to be sure.
>
Alex,
Done and pushed.
Regards,
John Ralls
More information about the gnucash-devel
mailing list