[Kmymoney-devel] import libraries

Chris DeveloperChris at rebel.com.au
Thu Mar 6 11:52:10 UTC 2014



I am switching to vs2010 to see if it compiles

The problem appeared when I moved from kmymoney 4.6.1 to 4.6.4

I was wrong the tools I used only showed the exports that did not have the 
_imp__ prefix. When I used the nm tool it showed the functions were exported 
with both no prefix and and prefixed with __imp__ which has an extra underscore.

What is odd is although I did need to recompile both qt and kdelibs there 
was no changes to those libraries which implies that the change was in kmymoney

Late Breaking news!
It looks like mingw decides whether to use __imp__ or _imp__ based on an 
environment variable or gcc -D(efine) More than likely this changed between 
build runs.
I found some pertinent macros in mac.h. but havent yet fully worked out 
where the error crept in.

Its never easy is it :)

Something New:-

I am also having trouble compiling aqbanking. for some reason the 
win32libs-source folder was completely removed

I asked on the kdewin mailing list but no response. I'll pull in the git 
branch 4.9 and check it out from there hopefully that will work...


DC


On 6/03/2014 12:10 AM, Ralf Habacker wrote:
> On 05.03.2014 12:15, Chris wrote:
>> When compiling kmymoney 4.6.4 on windows it appears my imports and
>> exports are somehow out of sync
>>
>> I get a huge number of unresolved references as I have previously
>> mentioned.
>>
>> It appears the problem is that the libraries are built without the
>> windows specific "_imp__" on the exports
> which would means it has been build without __declspec(dllexport).
> Normally exported classes have a class <library_name>___EXPORT
> <classname> ...
>> but when I am compiling kmymoney the linker is expecting the "_imp__"
>> + mangled name
> which means the public header of KLocale defines declspec(dllimport) on
> usage.
>> 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.
>>
>> Any pointers would be greatly appreciated.
> I would say the problem happens on compiling kdelibs.
> Ralf
>



More information about the KMyMoney-devel mailing list