C++ plans? (Re: r23706 - gnucash/trunk/src/register/ledger-core - Bug 721791)
Mike Alexander
mta at umich.edu
Sat Jan 25 21:30:36 EST 2014
--On January 25, 2014 3:57:29 PM -0800 John Ralls <jralls at ceridwen.us>
wrote:
>> You can also install other versions of gcc using MacPorts. I'm
>> currently using gcc 4.7 to build Gnucash (and other things). I
>> haven't installed gcc 4.8 or 4.9 but both are available with
>> MacPorts. I probably should switch to 4.8 at some point.
>
> Ah, that’s useful to know. IIRC you’re on 10.6.8; I imagine that
> you’re building against the native libs and headers in /usr and
> frameworks in /System/Library rather than against an SDK. Is that
> right?
I'm a little more recent that that. I'm currently running 10.8.5 on my
main machine. I have a server that's at 10.6.8, but I never do any
compiles there.
The MacPorts philosophy (which some disagree with, which is one reason
HomeBrew exists) is that the MacPorts environment should be as nearly
as possible completely self-contained. As a result most of the
libraries and headers I build against are ones installed by MacPorts,
either with gcc or one of the Gnucash dependencies. Remember that I'm
building the X version, not the Aqua version. I think it should be
possible to build the Aqua version too, but I haven't tried recently.
I've been thinking that I probably should give it a try someday.
Picking a random recent compile
(business/business-ledger/gncEntryLedger.c) and giving gcc the -H
option determined that it's including 55 different header files that
are not part of either Gnucash or MacPorts. All of them are from
/usr/include. That's out of a total of 670 different files included.
This also warned me that src/engine/GNCId.h needs multiple include
guards. Looking at it, I think it really needs to be given a decent
burial. It includes one #define that, as far as I can tell, is never
used.
I do use XCode to debug Gnucash. I don't build it there, but it works
fine as a GUI for the debugger. Somewhat to my surprise, lldb is happy
to debug code produced by gcc.
Mike
More information about the gnucash-devel
mailing list