in reply to Re^4: XS build error
in thread XS build error

Yes, that works fine. But now I've the first error. Is it link error while it use the false linker from VC?

Set up gcc environment - 3.4.5 (mingw-vista special r3) dlltool --def Zmodem.def --output-exp dll.exp C:\Perl\site\bin\g++.exe -o blib\arch\auto\Device\Modem\Protocol\Zmode +m\Zmodem.d ll -Wl,--base-file -Wl,dll.base -mdll -L"C:\Perl\lib\CORE" Zmodem.o -W +l,--image- base,0x3f000000 C:\Perl\lib\CORE\perl510.lib -lkernel32 -luser32 -lgd +i32 -lwins pool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -lu +uid -lws2_ 32 -lmpr -lwinmm -lversion -lodbc32 -lodbccp32 -lmsvcrt dll.exp dll.exp:fake:(.edata+0x34): undefined reference to `boot_Device__Modem +__Protocol __Zmodem' dll.exp:fake:(.edata+0x38): undefined reference to `boot_Device__Modem +__Protocol __Zmodem' collect2: ld returned 1 exit status dmake.exe: Error code 129, while making 'blib\arch\auto\Device\Modem\ +Protocol\Z modem\Zmodem.dll'

Replies are listed 'Best First'.
Re^6: XS build error
by syphilis (Archbishop) on Jan 07, 2010 at 12:13 UTC
    undefined reference to `boot_Device__Modem__Protocol__Zmodem'

    What does (the generated) Zmodem.def contain ? It should contain something like:
    EXPORTS boot_Device__Modem__Protocol__Zmodem _boot_Device__Modem__Protocol__Zmodem = boot_Device__Modem__Protocol +__Zmodem
    I think it's the Zmodem.xs file that determines the contents of the def file, so if the def file is wrong, it's probably a mistake in Zmodem.xs. (This stuff is case-sensitive, so pay attention to that aspect.)

    Cheers,
    Rob

      of course the problem was this:

      MODULE = Device::Modem::Protocol::Zmodem PACKAGE = Zmodem::Misc

      Thanks for all monk support :)