[Marble-devel] Findings about Marble on Windows

Christophe Leske info at multimedial.de
Thu Jul 1 11:46:20 CEST 2010


Hi there,

I thought i'd dump some thoughts here about compiling Marble on Windows 
(depsite the techpages put up on the marble website).

I'd appreciate any hints or corrections. Also, feel free to add these 
informations to the site if there is any interest.

Marble can be compiled using two different compilers, either MingW or 
Microsoft Visual C++ (MSVC).

The Windows version distributed on the KDE website is compiled using the 
MSVC compiler. For it to work, you'll also need the MSVC compiled 
version of QT (available at 
http://qt.nokia.com/downloads/windows-cpp-vs2008).

These are precompiled binaries of the QT Framework, done with MSVC.

Once you got these installed, make sure that you add the bin Path of the 
framework to your PATH variable. E.g. "C:\Qt\4.6.3\bin". This will point 
the system to the DLLs of the framework eventually needed by any Qt 
application.

Now, once you pulled the sources from SVN into a fresh directory, you 
can open a command line window (with administrator privileges - on Vista 
and Windows 7, you need to hold down SHIFT and Control when executing 
"CMD.exe" from the start button menu). You  need to make sure that you 
got those privileges, otherwise the build will fail due to missing 
rights to write files later on during linking and installing.


Make sure to set the environment variables for the MS Visual C++ 
compiler by doing "vcvarsall.bat" in the tool subdirectory of your 
Microsoft Visual C++ installation.

Example:

C:\>cd "\Program Files\Microsoft Visual Studio 9.0\VC"

C:\Program Files\Microsoft Visual Studio 9.0\VC>vcvarsall
Setting environment for using Microsoft Visual Studio 2008 x86 tools.

Then you can issue the build commands (thanks to Patrick Spendrin for that):

cmake -G "NMake Makefiles" -DQTONLY=ON 
-DCMAKE_INSTALL_PREFIX=C:\marble-tmp && nmake && nmake install

Additionally, if you would like to optimize things a bit, you can also 
add compiler options like

cmake -G "NMake Makefiles" -DQTONLY=ON -DCMAKE_INSTALL_PREFIX=C:\Temp 
-DCMAKE_CXX_FLAGS="/O2 /GL /arch:SSE2" -DCMAKE_BUILD_TYPE=Release && 
nmake && nmake install

/02 is an option for optimizing for speed
/GL is "overall program optimization" and
/arch:SSE2 optimizes for SSE2 commands

type "cl -h" for more available options on the MSVC compiler.

Once issued, you will get the build kicked off. First, the cmake 
cross-compiler will make the MakeFile, and Nmake will then compile it, 
while nmake install will install the application at the path specified 
at CMAKE_IMSTALL_PATH Prefix.

Once marble "installed", you need to manually copy the missing Qt 
Framework DLLs as well as the missing imageformat DLL for importing tiles.

The following DLLs go from the Qt/bin directory right next to the 
marble.exe file in the installation directory:

QtCore4.dll
QtGui4.dll
QtNetwork4.dll
QtSvg4.dll
QtWebKit4.dll
QtXml4.dll

Additionally, you need to create a directory in the "plugins" folder 
named "imageformats". This is the plugin for different image formats. In 
Marble 0.8.0, there was just one DLL in there, namely "qjpeg4.dll", 
which is the support for JPEG file tiles in Marble.

[NOTE: what about PNG support? Would that be "qmng4.dll" to be added?]

The "qjpeg4.dll" is not build yet after downloading and installing the 
MSVC version of the Qt Framework, yet you will find a MS VC Project file 
in your Qt source directory (e.g. 
"C:\Qt\4.6.3\src\plugins\imageformats\imageformats.dsw"). Open that up, 
set the release configuration in the compiler and compile the project.

Note that the output files will be found in another place! Namely in the 
plugins folder of Qt (e.g. "C:\Qt\4.6.3\plugins\imageformats")

 From there, you can copy the qjpeg4.dll needed, and you should be all 
set - you now got a fresh Marble version compiled, eventually even with 
optimizations!


Sylvain, maybe it is now possible to build debug versions of the 
libmarble widget as you intended to? CMAKE accepts Debug builds, and 
putting up the Debug-Version of the Qt-DLLs should eventually do the 
trick for you.

If you care about explaining me what you were after (forgot about it, 
sorry), I may be able to help you out (this time) :-)


Greets,

Christophe Leske
multimedial.de

PROFILE: www.linkedin.com/in/multimedial
----------------------------------------
www.multimedial.de - info at multimedial.de
Vogteistrasse 19 - 51647 Gummersbach
++ 49 (0) 22 61 - 30 21 59-0
----------------------------------------

_______________________________________________
Marble-devel mailing list
Marble-devel at kde.org
https://mail.kde.org/mailman/listinfo/marble-devel


More information about the Marble-devel mailing list