Compile error current master
jralls at ceridwen.us
Sat Apr 26 10:25:27 EDT 2014
On Apr 26, 2014, at 3:25 AM, Herbert Thoma <herbert.thoma at iis.fraunhofer.de> wrote:
> Am 26.04.2014 11:13, schrieb Geert Janssens:
>> On Saturday 26 April 2014 11:07:50 Herbert Thoma wrote:
>>> I get the following error when I try to build the current master
>>> make: Entering directory
>>> `/home/tma/gnucash/gnucash_cvs/gnucash/src/libqof/qof' /bin/sh
>>> [-Werror] cc1plus: error: command line option '-Wmissing-prototypes'
>>> is valid for C/ObjC but not for C++ [-Werror] cc1plus: all warnings
>>> being treated as errors
>>> make: *** [libgnc_qof_la-gnc-date.lo] Fehler 1
>>> make: Leaving directory
>>> When did we start with C++?
>> John committed the first few patches to compile libqof as a c++ library.
>> But apparently there's an issue with gcc and these patches. See also bug
> Ah I see.
> BTW: if I supply --disable-error-on-warning to configure, it does not get much
> kvp_frame.c: In function 'KvpFrame* get_trailer_make(KvpFrame*, const char*, char**)':
> kvp_frame.c:329:38: error: invalid conversion from 'const char*' to 'char*' [-fpermissive]
> kvp_frame.c: In function 'const KvpFrame* get_trailer_or_null(const KvpFrame*, const char*, char**)':
> kvp_frame.c:371:38: error: invalid conversion from 'const char*' to 'char*' [-fpermissive]
> make: *** [libgnc_qof_la-kvp_frame.lo] Error 1
> C++ is much stricter with types than plain C ...
Indeed. One of its features.
Apparently you have a defective string.h: The lines in question are
last_key = strrchr (key_path, '/');
and strrchr is declared as
char* strrchr(const char *, int);
in the POSIX standard . 'key_frame' is the 'const char*' argument in the function arguments.
I can const_cast<char*>(key_frame) in there, but I'd rather not.
More information about the gnucash-devel