[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