MinGW build of 2.6.5: Still having auto-import problems ;-(



I'm now trying to build gtkmm 2.6.5 via g++ set up as cross compiler with i386-mingw32 output (now that I've got 2.2.12 to work after tweaking a bit - I want to support 2.0 *and* 2.4 APIs.) Unfortunately, I get the problem described in http://bugzilla.gnome.org/show_bug.cgi?id=309030 - despite the fact that 2.6.5 is supposed to contain a fix for that. It seems like the problem is that the GTKMM_API will *not* contain "__declspec(dllimport)" because that setup is conditial on GLIBMM_DLL, which won't be defined in my glibmm setup (version 2.6.1 built in a similar manner.) The problem is the following section of glibmmconfig.h:

// detect common platforms
#if defined(_WIN32)
// Win32 compilers have a lot of varation
#if defined(_MSC_VER)
#define GLIBMM_MSC
#define GLIBMM_WIN32
#define GLIBMM_DLL
#elif defined(__CYGWIN__)
#define GLIBMM_CONFIGURE
#elif defined(__MINGW32__)
#define GLIBMM_WIN32
#define GLIBMM_CONFIGURE
#else

- notice how GLIBMM_DLL won't be defined in the "MinGW" case. I tried to rebuild glibmm after inserting

#define GLIBMM_DLL

at the appropriate spot, but then I got

i386-mingw32-g++ -shared -nostdlib /usr/lib/gcc/i386-mingw32/3.4.6/../../../../i386-mingw32/lib/dllcrt2.o .libs/convert.o .libs/date.o .libs/fileutils.o .libs/iochannel.o .libs/markup.o .libs/module.o .libs/optioncontext.o .libs/optionentry.o .libs/optiongroup.o .libs/shell.o .libs/spawn.o .libs/thread.o .libs/unicode.o .libs/wrap_init.o .libs/value_basictypes.o .libs/class.o .libs/containers.o .libs/debug.o .libs/dispatcher.o .libs/error.o .libs/exception.o .libs/exceptionhandler.o .libs/init.o .libs/interface.o .libs/main.o .libs/miscutils.o .libs/object.o .libs/objectbase.o .libs/pattern.o .libs/property.o .libs/propertyproxy.o .libs/propertyproxy_base.o .libs/quark.o .libs/random.o .libs/signalproxy.o .libs/signalproxy_connectionnode.o .libs/streamiochannel.o .libs/stringutils.o .libs/threadpool.o .libs/timer.o .libs/timeval.o .libs/ustring.o .libs/utility.o .libs/value.o .libs/value_custom.o .libs/wrap.o -L/usr/i386-mingw32/lib /usr/i386-mingw32/lib/libsigc-2.0.dll.a -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -liconv -L/usr/lib/gcc/i386-mingw32/3.4.6 -L/usr/lib/gcc/i386-mingw32/3.4.6/../../../../i386-mingw32/lib -lstdc++ -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt -luser32 -lkernel32 -ladvapi32 -lshell32 -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt -mms-bitfields -Wl,--export-all-symbols -o .libs/libglibmm-2.4-1.dll -Wl,--image-base=0x10000000 -Wl,--out-implib,.libs/libglibmm-2.4.dll.a
Creating library file: .libs/libglibmm-2.4.dll.a
.libs/objectbase.o(.text+0x163): In function `ZN4Glib10ObjectBaseD2Ev':
/usr/src/redhat/BUILD/glibmm-2.6.1/glib/glibmm/objectbase.cc:120: undefined reference to `_imp___ZN4Glib6quark_E'
.libs/objectbase.o(.text+0x211): In function `ZN4Glib10ObjectBaseD1Ev':
/usr/src/redhat/BUILD/glibmm-2.6.1/glib/glibmm/objectbase.cc:120: undefined reference to `_imp___ZN4Glib6quark_E'
.libs/objectbase.o(.text+0x2ed): In function `ZN4Glib10ObjectBaseD0Ev':
/usr/src/redhat/BUILD/glibmm-2.6.1/glib/glibmm/objectbase.cc:120: undefined reference to `_imp___ZN4Glib6quark_E' .libs/objectbase.o(.text+0x3c4): In function `ZN4Glib10ObjectBase20_set_current_wrapperEP8_GObject': /usr/src/redhat/BUILD/glibmm-2.6.1/glib/glibmm/objectbase.cc:157: undefined reference to `_imp___ZN4Glib6quark_E' .libs/objectbase.o(.text+0x3e0):/usr/src/redhat/BUILD/glibmm-2.6.1/glib/glibmm/objectbase.cc:159: undefined reference to `_imp___ZN4Glib6quark_E' .libs/objectbase.o(.text+0x48b):/usr/src/redhat/BUILD/glibmm-2.6.1/glib/glibmm/objectbase.cc:174: more undefined references to `_imp___ZN4Glib6quark_E' follow .libs/objectbase.o(.text+0x58b): In function `ZN4Glib36_gobject_cppinstance_already_deletedEP8_GObject': /usr/src/redhat/BUILD/glibmm-2.6.1/glib/glibmm/objectbase.cc:264: undefined reference to `_imp___ZN4Glib26quark_cpp_wrapper_deleted_E' .libs/wrap.o(.text+0x1b): In function `ZNSt6vectorIPFPN4Glib10ObjectBaseEP8_GObjectESaIS6_EE13_M_insert_auxEN9__gnu_cxx17__normal_iteratorIPS6_S8_EERKS6_': /usr/src/redhat/BUILD/glibmm-2.6.1/glib/glibmm/wrap.cc: undefined reference to `_imp___ZN4Glib6quark_E' .libs/wrap.o(.text+0xa4):/usr/src/redhat/BUILD/glibmm-2.6.1/glib/glibmm/wrap.cc: undefined reference to `_imp___ZN4Glib26quark_cpp_wrapper_deleted_E' .libs/wrap.o(.text+0xc4):/usr/src/redhat/BUILD/glibmm-2.6.1/glib/glibmm/wrap.cc: undefined reference to `_imp___ZN4Glib6quark_E'
.libs/wrap.o(.text+0x1e7): In function `ZN4Glib18wrap_register_initEv':
/usr/src/redhat/BUILD/glibmm-2.6.1/glib/glibmm/wrap.cc:88: undefined reference to `_imp___ZN4Glib6quark_E' .libs/wrap.o(.text+0x2d3):/usr/src/redhat/BUILD/glibmm-2.6.1/glib/glibmm/wrap.cc:90: undefined reference to `_imp___ZN4Glib6quark_E' .libs/wrap.o(.text+0x2e7):/usr/src/redhat/BUILD/glibmm-2.6.1/glib/glibmm/wrap.cc:91: undefined reference to `_imp___ZN4Glib26quark_cpp_wrapper_deleted_E' .libs/wrap.o(.text+0x31f): In function `ZN4Glib13wrap_registerEmPFPNS_10ObjectBaseEP8_GObjectE': /usr/src/redhat/BUILD/glibmm-2.6.1/glib/glibmm/wrap.cc:120: undefined reference to `_imp___ZN4Glib6quark_E' .libs/wrap.o(.text+0x34e):/usr/src/redhat/BUILD/glibmm-2.6.1/glib/glibmm/wrap.cc:120: undefined reference to `_imp___ZN4Glib6quark_E'
make[5]: *** [libglibmm-2.4.la] Error 1

At which point I think all I can do is to cry for help...

- Toralf




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]