Thread

Thread Index

Message

From: Sylvain <beuc%beuc.net@localhost>
To: libzip-discuss%nih.at@localhost
Subject: libzip and MXE/mingw: error with ZIP_EXTERN/dllimport
Date: Sun, 16 Dec 2012 21:41:36 +0000

Hi,

I'm writing a MXE (http://mxe.cc/) build script for libzip, which I
use in my GNU FreeDink project :)

(MXE is a cross-compilation helper for MinGW, which allow you to build
.dll and .exe from GNU/Linux.  I just send a patch for libzip support
here: https://github.com/mxe/mxe/pull/101 )


I think that somewhere between 0.9.3 and 0.10.1, cross-compilation for
static builds stopped working.  When linking libzip it with my
program, I now get lots of "undefined reference to `_imp__zip_open'"
and such.

'gcc -E' tells me that functions in zip.h are prefixed with
__declspec(dllimport).  The section in zip.h about ZIP_EXTERN seems to
be the culprit.

Currently I made a quick&dirty patch in the MXE build script, but it
would be nice to fix this properly (that is, if I'm right in saying
that the problem is within libzip ;)).


When I meet this kind of issue, I can only recommend the Autotoold
"goat book" dedicated section at:
http://www.sourceware.org/autobook/autobook/autobook_255.html
It deals with all the 5 use cases of declaring .dll symbols.

What do you think?

-- 
Sylvain

Made by MHonArc.