I am vainly trying to compile kmymoney using the emerge windows tool

all seems to go well until linking kmymoney

I get a huge number of unresolved references.

It appears the problem is that the libraries I am linking against are built without the windows specific "_imp__" on the exports but when I am compiling kmymoney the linker is expecting the "_imp__" + mangled name

For example the linker is looking for _imp___ZNK7KLocale28negativeMonetarySignPositionEv but the export is called _ZNK7KLocale28negativeMonetarySignPositionEv

I assume I have to pass another flag or remove a flag from gcc to tell it to look for the correct export. but I am not sure how to do this. and cannot find the required documentation. even if I did I am not sure where to put it in the cmake file.

Any pointers would be greatly appreciated.


I have discovered that the libraries in fact do have the _imp__ prefix

it appears there is a missing underscore

when I grep for one of the missing functions I get the following

r:\lib>nm *.a | grep _ZNK7KLocale28negativeMonetarySignPositionEv
00000000 T __ZNK7KLocale28negativeMonetarySignPositionEv
00000000 I __imp___ZNK7KLocale28negativeMonetarySignPositionEv

Clearly the prefix is there. but it looks like its missing the first underscore

The prefix is __imp__ whereas the linker is looking for _imp__

Any ideas how I can resolve this??