[Marble-devel] HOWTO (in progress) - build a libmarble application on windows with Qt Creator, MinGW, CMake

Sylvain Paré sylvain.pare at gmail.com
Fri May 21 23:23:05 CEST 2010


Hi Dennis.
Thanks for all of this.
I will test it at work next week (as line by line answer).
(it is a bit frustrating to have to wait 'til there.. :) )

Regards,
Sylvain

2010/5/21 Dennis Nienhüser <earthwings at gentoo.org>

>
> >> But!
> >>
> >> The marble widget in my app is just a black rectangle where right and
> >> left clicks work as usual ( contextual menu etc)
> >> Like with the standalone marble application => NO map! instead of
> >> being blue it is black...
> >> I think it is normal as it does not work in marble itself.
> >> So again : ANYONE having a clue??
> >>
> > Did you set a valid map theme on the MarbleWidget in your application?
> >
> Another thing: I think (correct me if I'm wrong) that in Windows plugins
> and data directories are searched relative to the application directory.
> If you use it in your own application, make sure to copy those two
> directories from the marble install over: If you have C:\MyApp\foo.exe,
> make sure to copy the data and plugins directories from the Marble
> install directory to C:\MyApp\
>
> >> One other thing :
> >> marble's widget do not show in Qt designer while the make install
> >> stage did copy
> >> libMarbleWidgetPlugin.dll,  libMarbleNavigatorPlugin.dll and
> >> libLatLonEditPlugin.dll
> >> in C:\Qt\2010.02.1\qt\plugins\designer.
> >> (I added this path in Qtdesign even if it is a bit dumb but widgets
> >> still missing)
> >> I don't know why..
> >> So for the Qt creator integration it is not stil here.
> >>
> > The libmarblewidget.dll and any other dependent dlls must be
> > accessible for QtCreator as well. Otherwise QtCreator/QtDesigner will
> > get missing symbols when loading the designer plugin and silently
> > ignore it. When you launch marble.exe, its dependent dlls are
> > accessible for it because they lie in the same folder. That's not the
> > case for QtCreator/QtDesigner.
> >
>
> To elaborate on this as well: You need a release build of Marble
> (otherwise QtDesigner complains) and you need to copy
> libmarblewidget.dll (the release version, not the one ending with a 'd')
> to a path that QtDesigner will know. To be on the safe side, copy it
> next to designer.exe in the Qt bin folder. Also copy the data and
> plugins directories there (see above). Once that is done, QtDesigner
> will show the three Marble plugins.
>
> If it still is not working, check the Help => Plugins dialog in
> QtDesigner. For each failing plugin, it will show an error description.
> If it complains about mixed debug and release build, correct that
> setting in CMakeCache.txt (CMAKE_BUILD_TYPE). If it complains about a
> missing module and doesn't tell you which one it misses, use  Dependency
> Walker [1]: Open the Marble designer plugin in it to see which dependent
> dlls are resolved and which not. Ignore wer.dll and ieshims.dll on
> Windows XP. Copy the ones not resolved to the Qt bin folder. That was
> only libmarblewidget.dll here. Adding the Marble directory to your PATH
> variable should work as well.
>
> Tested this with Windows XP, MinGW 5.1.6, Qt 4.5.1 and a recent Marble
> trunk checkout.
>
> Regards,
> Dennis
>
> [1] http://www.dependencywalker.com
>
> _______________________________________________
> Marble-devel mailing list
> Marble-devel at kde.org
> https://mail.kde.org/mailman/listinfo/marble-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/marble-devel/attachments/20100521/1f4eab53/attachment.htm 


More information about the Marble-devel mailing list