Gnucash c++

John Ralls jralls at
Tue Aug 5 14:04:00 EDT 2014

On Aug 5, 2014, at 8:05 AM, Aaron Laws <dartme18 at> wrote:

> I've been doing some work on gnucash with relation to c++. I'm "LMAT" on
> IRC. I got the project to compile, link, and run as c++ (no .c files I'm
> pretty sure). I think it doesn't load any backends, and there are other
> problems. I had to solve a problem with the module loading because c++
> "mangles" names (if you don't know what this is, it's much better than it
> sounds!). I added extern "C" to those entry points so that they could be
> found (in their unmangled form). I'm assuming the backend loading is
> similar, but having taken a look, I don't think it works in the same way.
> is my "debug"
> tree. Don't count on it for anything, I may be doing "force-pushing" now
> and then. Currently, this is the version that "runs" if you want to take a
> look. (I think I'll put a tag here soon.)
> is where I plan
> on putting something that may e.g. actually be pullable into gnucash. For
> instance, the first commits I plan to put here are updates to names to
> remove c++ keywords, and changing c signatures to be c++ compatible (none
> of this   func (one, two) char one; char * two; {} stuff).
> And, is the boost
> guid branch on which I currently have issued a pull request.
> I've been learning a lot about the code base by doing this work, and I'm
> sure it would be *much* faster if I knew more about how certain things were
> configured. Let me know what you think if you get a chance to take a look
> around!


I've pulled and begun testing your guidcpp branch. It looks good, and I expect to merge it to master today or Thursday.

What is the motivation for compiling everything as C++ if it's still really C and you have to wrap everything in extern "C" {} to get it to link, especially in gnome and register directories, which can't be converted to C++?

John Ralls

More information about the gnucash-devel mailing list