[Kmymoney-devel] Compile Error -

Cristian Oneț onet.cristian at gmail.com
Thu Mar 21 12:55:58 UTC 2013


2013/3/21 aga <agander93 at gmail.com>:
> On Thu, 21 Mar 2013 14:06:45 +0200
> Cristian Oneț <onet.cristian at gmail.com> wrote:
>
>> The 'void timetrace(const char *txt)' function is defined in main.cpp
>> so you obviously have no way to link to it since that file gets linked
>> in the application binary. If you really need to link the plugin to
>> libraries containing UI elements like 'dialogs widgets' you need to
>> create a definition for 'void timetrace(const char *txt)' in the
>> plugin.
>>
>> Hope that helps,
>> Regards,
>> Cristian
>>
>> P.S. this is one of those things in KMyMoney that needs a better
>> solution :)
>
> Thanks Cristian.
>
> I'd seen that is was defined in main.cpp, and hadn't twigged that it
> wouldn't be accessible from a plugin.  I should have, as I remember
> stumbling into something similar a while back.
>
> To be sure I understand what you're saying, I need to copy that 'void
> timetrace(const char *txt)' into the plugin so that it is accessible?

Yes.

> < If you really need to link the plugin to
>> libraries containing UI elements like 'dialogs widgets
>
> I had to add those because of the other linking problems I encountered
> on the relocation of the plugin.  Does that suggest that really, those
> errors should be resolved in a similar way?  Oh, dear.
>

I can't tell until I see those errors. Basically the plugin should
only use objects provided by the installed kmymoney libraries (you can
find those by looking at the main CMakeLists.txt).

> Allan
>
>
>> 2013/3/21 aga <agander93 at gmail.com>:
>> > I'm working on a new plugin, for CSV export.  As I'd based it on
>> > mymoneyqifwriter.cpp, which I'd recently worked on, and without too
>> > much thought, I built it in kmymoney/kmymoney/converter/ and had it
>> > working nicely, with just some tidying up to do, or so I thought.
>> >
>> > Then I moved it all to kmymoney/kmymoney/plugins and had to sort out
>> > several undefined reference problems.  I now am getting the
>> > following error and am a bit stuck on what's needed.
>> > "
>> > ../../../lib/libwidgets.a(register.cpp.o): In function
>> > `KMyMoneyRegister::Register::updateRegister(bool)': /home/aga/Git/kmymoney/kmymoney/widgets/register.cpp:943:
>> > undefined reference to `timetrace(char const*)' "
>> >
>> > In desperation, I googled and found an exchange between Michael
>> > Edwardes and Cristian in 2010, but that didn't seem relevant as it
>> > involved building qtdesigner widgets plugin, which I'm not doing.
>> >
>> > This is what I now have included in my CMakeLists.txt -
>> > ".....
>> > TARGET_LINK_LIBRARIES(kmm_csvexport
>> >   kmm_mymoney kmm_plugin
>> >   ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS}
>> >   ${GMP_LIBRARIES}
>> >   ${LIBALKIMIA_LIBRARY}  kmymoney_common dialogs widgets models
>> > kmm_config ).....
>> > "
>> >
>> > Can anyone help dig me out please?  Many thanks
>> >
>> > Allan
>


More information about the KMyMoney-devel mailing list