Re: [gtkmm] gtkmm 2.4 and MSVC++ 2003



Is it possible to compile 2.4 with VC++?

Not to my knowledge. I am trying to do the same thing, i.e. making a set of
.dll+.lib files instead of statically linked .libs

i'm also getting an inconsistent dll linkage on
symbols Glib::quark_ and
Glib::quark_cpp_wrapper_deleted_
I'm not too familiar with dlls, but when it finally
links, it produces glibmm.lib (is this a dll?).

msvc should produce both a .lib and a .dll file in the same directory.
You'll need the .dll for running applications and the .lib for linking
against your .dll.

anyway, when i try to link glibmm_value it says these
two symbols cannot be resolved.

quark_ and quark_cpp_wrapper_deleted_ are global objects. I had to add a
correct linkage specifier in the file: quark.h like this:

#ifdef GLIBMM_BUILD
extern __declspec(dllexport) GQuark quark_;
extern __declspec(dllexport) GQuark quark_cpp_wrapper_deleted_;
#else
__declspec(dllimport) GQuark quark_;
__declspec(dllimport) GQuark quark_cpp_wrapper_deleted_;
#endif // GLIBMM_BUILD

and in quark.cpp:

__declspec(dllexport) GQuark quark_ = 0;
__declspec(dllexport) GQuark quark_cpp_wrapper_deleted_ = 0;


It's not pretty, but it works. I can remember that those where not the only
global objects in glibmm / gtkmm, but I can't right now recall the names of
the others.





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