PerlEz.lib changed structure from Active Perl version 5.16 to 5.18, I now see link errors when utilizing ms vs c++ v6.0

Posted by p2343300 on 2015-01-21 15:09


Libraries (.libs)appear to have changed structure when Active Perl moved from version 5.16 to 5.18. Would anyone know how to link the new .lib structures when utilizing ms vs c++ v6.0. More specifically I have been utilizing PerlEz with my application, but I can't seem to move to new versions of Active Perl as I get linker errors.
PerlThingDlg.obj : error LNK2001: unresolved external symbol _PerlEzDelete@4
PerlThingDlg.obj : error LNK2001: unresolved external symbol _PerlEzCreate@8

The PerlEz.h files are the same in both versions, but the PerlEz.libs are not.

Previously I had utilized perl.h and perl516.lib to embed perl in my application, but this fails now also as the ".lib" changed to be libperl518.a and I can't seem to link to it.

I have searched on the web, but I don't find any references to the change in libraries, or how to link them.

Any help would appreciated.


ActiveState Staff
Mon, 2015-06-22 11:38

None of the existing 5.18 or 5.20 releases are fully compatible with MS toolchains, and there is a known problem with duplicate pointers that affects some modules when using MinGW.

These issues may both be resolved in the 5.22 release.

loopsta | Tue, 2015-08-11 00:57

The calling convention is being set incorrectly. To fix this define the correct calling convention before including PerlEz.h

#define APIENTRY __cdecl


This fixed it for me.

Good luck.