[mingw64 g++] Problem beim build einer 32 bit dll

Servus,

beim Linken einer 32 bit dll mit mingw 64 erhalte ich folgende Fehler:
Code:
H:\>g++.exe -m32 -shared  -Wl,--output-def=bin\Release\libGainVariantFactory.def  -Wl,--out-implib=bin\Release\libGainVariantFactory.a -Wl,--dll   obj\Release\GainVariantFactory.o  -o bin\Release\GainVariantFactory.dll  -s  -loleaut32 -luser32
d:/eigene/programmierung allgemein/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible d:/eigene/programmierung allgemein/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/lib/liboleaut32.a when searching for -loleaut32
...
d:/eigene/programmierung allgemein/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -loleaut32

d:/eigene/programmierung allgemein/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible d:/eigene/programmierung allgemein/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/lib/libuser32.a when searching for  -luser32
...
d:/eigene/programmierung allgemein/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -luser32
d:/eigene/programmierung allgemein/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible d:/eigene/programmierung allgemein/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/libstdc++.dll.a when searching for -lstdc++
...
d:/eigene/programmierung allgemein/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lstdc++
d:/eigene/programmierung allgemein/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible d:/eigene/programmierung allgemein/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/lib/libmingw32.a when searching for -lmingw32
...
d:/eigene/programmierung allgemein/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lmingw32
d:/eigene/programmierung allgemein/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible d:/eigene/programmierung allgemein/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/lib/libgcc_s.a when searching for -lgcc_s
...
d:/eigene/programmierung allgemein/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lgcc_s
...
d:/eigene/programmierung allgemein/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lmsvcrt
collect2.exe: error: ld returned 1 exit status

Kann mir jemand helfen das Problem zu lösen?
 
Setze den Library-Pfad so, dass die Libs auch darin enthalten sind. Stelle ausserdem sicher, dass für die beanstandeten Libs auch die notwendigen Header installiert sind.
 
Wenn ich die dll für 64 bit baue (ohne -m32 Option) erhalte ich keine Fehler.
liboleaut32.a ist z.b. auch im Pfad
D:\Eigene\Programmierung allgemein\C\mingw64\x86_64-w64-mingw32\lib
also
d:/eigene/programmierung allgemein/c/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.8.1/../../../../x86_64-w64-mingw32/lib
enthalten.

Die Deklarationen der Symbole, die ich in der dll verwenden will werden über windows.h inkludiert.
 
Zurück
Oben