[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Mingw-cross-env-list] MXE: How to build a self-sufficient DLL that
From: |
Matthias Geier |
Subject: |
Re: [Mingw-cross-env-list] MXE: How to build a self-sufficient DLL that statically includes other libraries? |
Date: |
Tue, 24 Mar 2015 16:28:26 +0100 |
Hi Nikos.
Thanks a lot, this looks promising!
Everything works fine including "./configure", but I get an error during "make":
make[2]: Entering directory '[...]/libsndfile-1.0.25/src'
CC sndfile.lo
CC aiff.lo
CC au.lo
CC avr.lo
CC caf.lo
CC dwd.lo
CC flac.lo
CC g72x.lo
In file included from au.c:26:0:
sndfile.h:318:9: error: unknown type name '__int64'
typedef __int64 sf_count_t ;
^
In file included from dwd.c:26:0:
sndfile.h:318:9: error: unknown type name '__int64'
typedef __int64 sf_count_t ;
... and many similar errors.
What did I do wrong?
As far as I can tell, the ./configure output looks OK:
Configuration summary :
libsndfile version : .................. 1.0.25
Host CPU : ............................ i686
Host Vendor : ......................... w64
Host OS : ............................. mingw32.static
Experimental code : ................... no
Using ALSA in example programs : ...... no
External FLAC/Ogg/Vorbis : ............ yes
Tools :
Compiler is GCC : ..................... yes
GCC version : ......................... 4.9.2
Installation directories :
Library directory : ................... /usr/local/lib
Program directory : ................... /usr/local/bin
Pkgconfig directory : ................. /usr/local/lib/pkgconfig
HTML docs directory : .................
/usr/local/share/doc/libsndfile1-dev/html
cheers,
Matthias
On Tue, Mar 24, 2015 at 3:28 PM, Nikos Chantziaras wrote:
> On 24/03/15 12:51, Matthias Geier wrote:
>>
>> [...]
>> This makes a lot of sense in general, but I have a specific case where
>> I would like to mix static and shared libraries.
>> I would like to create a DLL for libsndfile, which should statically
>> include all dependencies (libFLAC, libogg, libvorbis, ...).
>
>
> Build against a static MXE, but outside of MXE. That's how I create my
> self-containted :-)
>
> That means, build everything libsndfile needs in MXE. Statically. But
> *don't* build libsndfile itself. Then, build it outside of MXE with
> something like the below. It also applies the MXE-specific patch and
> rebuilds the configure script for that patch to take effect.
>
> (I assume here that you installed MXE in ~/opt/mxe; adjust the path below
> according to your MXE directory.)
>
>
> cd /tmp
> tar xf libsndfile-1.0.25.tar.gz
> cd libsndfile-1.0.25
> patch -p1 < ~/opt/mxe/src/libsndfile-1-fixes.patch
> autoreconf -fi -IM4
> ./configure --host=i686-w64-mingw32.static --enable-shared
> --disable-static --disable-sqlite --disable-octave --disable-alsa
> make -j4
>
>
> This will produce a dll somewhere. Find it with:
>
>
> find . -iname "*.dll"
>
>
> That dll should contain everything it needs to run on its own.
>
> The above assumes you're on latest git master of MXE. For the old "stable"
> MXE, you need to adjust the --host accordingly.
>
> Note though: this method can be problematic with C++ exception handling,
> since each DLL you produce contains a static copy of libgcc. If you have
> several DLLs that are built that way, then each one contains its own libgcc.
> The result of that is that exceptions might not propagate correctly. I think
> this only applies when the DLL is used by an *.exe or another dll that is
> written in C++, but I'm not sure.
>
>
- [Mingw-cross-env-list] MXE: How to build a self-sufficient DLL that statically includes other libraries?, Matthias Geier, 2015/03/24
- Re: [Mingw-cross-env-list] MXE: How to build a self-sufficient DLL that statically includes other libraries?, Nikos Chantziaras, 2015/03/24
- Re: [Mingw-cross-env-list] MXE: How to build a self-sufficient DLL that statically includes other libraries?,
Matthias Geier <=
- Message not available
- Message not available
- Re: [Mingw-cross-env-list] MXE: How to build a self-sufficient DLL that statically includes other libraries?, Nikos Chantziaras, 2015/03/24
- Re: [Mingw-cross-env-list] MXE: How to build a self-sufficient DLL that statically includes other libraries?, Matthias Geier, 2015/03/24
- Re: [Mingw-cross-env-list] MXE: How to build a self-sufficient DLL that statically includes other libraries?, Nikos Chantziaras, 2015/03/24
- Re: [Mingw-cross-env-list] MXE: How to build a self-sufficient DLL that statically includes other libraries?, Matthias Geier, 2015/03/25
- Re: [Mingw-cross-env-list] MXE: How to build a self-sufficient DLL that statically includes other libraries?, Nikos Chantziaras, 2015/03/25
- Re: [Mingw-cross-env-list] MXE: How to build a self-sufficient DLL that statically includes other libraries?, Matthias Geier, 2015/03/25
- Re: [Mingw-cross-env-list] MXE: How to build a self-sufficient DLL that statically includes other libraries?, Matthias Geier, 2015/03/25
- Re: [Mingw-cross-env-list] MXE: How to build a self-sufficient DLL that statically includes other libraries?, Matthias Geier, 2015/03/27