This is the instruction for building Stellarium from version 0.10.2. using the MSYS system with Qt 4.7.1/MinGW. See also the Windows_Build_Instructions for the Qtcrator method which you may find easier.
Installation of development tools & libraries
Building with MinGW32
With the change in compiling to use Qt 4.7.1 compiling stellarium has now been made considerably easier and can be built successfully in Windows 2000, XP, Vista and Windows 7 (32 bit and 64 bit) although it must be run in 32 bit mode on 64 bit operating systems.
Note: Windows 7 (64bit). When using MSYS Windows 7 does not respond to *.bat files. Change the .bat to .cmd. In addition file names that start with "." eg .bzr cannot be renamed. The install programs seem to be able to write these files however.
The need for separate installations of most of the older dependancies like Dev-Cpp, MinGW, GNUWin32 etc is no longer needed.
To get started you will need to download and install
- Trolltech's QT OpenSource (current version 4.7.2 from their site http://qt.nokia.com/qt-sdk-win-opensource-2010.05.exe Install it into a folder \qt\4.7.2 to conform with previous versions.
The SDK download only contains Qt version 4.7.0 so make sure that you get qt 4.7.2 windows libraries(mingw 4.4) and install it in the qt\4.7.2\qt sub folder
Qt has been updated a few times since Qt 4.7.1. It is now possible to compile Stellarium quite well with Qt 4.8.0.
To do this you wil need to download the Qt libraries
Qt libraries 4.8.0 for Windows (minGW 4.4, 354 MB)
You will also need MinGW 4.4 and that is no longer packaged with the 4.8.0 libraries
Install this in C:\Mingw first. Then install the Qt libraries in C:\Qt\4,8,0\qt to conform with the previous installations. During the installation you will be asked to confirm the location of MinGW.
- CMake-2.8.1-win32-86.exe from http://www.cmake.org/HTML/index.html
- Note: version 2.8 will be needed for sound support
- libiconv-1.9.2-1.exe (from http://gnuwin32.sourceforge.net/packages/libiconv.htm). Must be installed before gettext
- zlib-1.2.3.exe (from http://gnuwin32.sourceforge.net/packages/zlib.htm).
- Gettext-0.14.4.exe (from http://gnuwin32.sourceforge.net/packages/gettext.htm ).
These three dependancies are to be installed in \Qt\4.7.2\MinGW or \MinGW with Qt 4.8.0 when requested for the install folder
- MSYS version 1.0.11 (http://sourceforge.net/project/downloading.php?groupname=mingw&filename=MSYS-1.0.11.exe&use_mirror=switch). Install to the root directory and answer yes to the first two questions and set the path to the location of MinGW to \Qt\4.7.2\MinGW or\minGW if you have Qt 4.8.0
Note: Windows 7 does not like .bat files it prefers them as .cmd. If the msys.bat file does not store your previous command try changing it to msys.cmd
The source code is now kept in bzr and no longer updated in the svn see the section on the Stellarium home page under
- see Bzr checkout
- TortoiseSVN-22.214.171.12460-win32-svn-1.6.11.msi into Windows (http://tortoiseSVN.net/downloads). If you have Windows 7 64 bit don't forget to get and install the 64 bit version TortoiseSVN-126.96.36.19960-x64-svn-1.6.11.msi. Next install bazaar from http://wiki.bazaar.canonical.com/Download During installation tick the bzr shell extension. NOTE: there may be a later versions. (if you want to build the latest development version)
Configuring the MSYS environment
You need to set some environment variables in the MSYS environment. Start MSYS and enter the following commands.
export PATH=$PATH:C:\Program Files\CMake 2.8\bin;C:\Qt\4.7.2;J:\Qt\4.7.2\qt\bin; C:\Qt\4.7.2\mingw\bin;C:\Qt\4.7.2\mingw\lib;C:\Qt\4.7.2\mingw\include
If you installed Qt 4.8.0 then
export PATH=$PATH:C:\Program Files\CMake 2.8\bin;C:\Qt\4.8.0;c:\Qt\4.8.0\qt\bin; C:\mingw\bin;C:\mingw\lib;C:\mingw\include
If you installed packages listed above in non-standard locations (or with different versions which are expressed in the path to the files), you'll need to modify this command appropriately:
When Building with Qt the following paths are best added to the "Path" of the environment variables of your operating system manually. Control panel – System – advanced – environment variables. (use your system drive for "C:")
Note: to avoid secondary paths to older versions of the dependencies it is safer to remove the paths from the environment variables that call "dev-cpp"
C:\Program Files\CMake 2.8\bin;C:\Qt\4.7.2;C:\Qt\4.7.2\qt\bin; C:\Qt\4.7.2\mingw\bin;C:\Qt\4.7.2\mingw\lib;C:\Qt\4.7.2\mingw\include
and with Qt 4.8.0
C:\Program Files\CMake 2.8\bin;C:\Qt\4.8.0;C:\Qt\4.8.0\qt\bin; C:\mingw\bin;C:\mingw\lib;C:\mingw\include
Getting the source code
You can download the source code for the release versions from the sourceforge download area. Save the file to the /home/YOURUSERNAME directory within MSYS (typically this is C:\msys\1.0\home\YOURUSERNAME\ within the Windows filesystem). The file name should be stellarium-0.10.6.tar.gz or similar.
De-compress the tar file like this:
tar zxvf stellarium-0.10.6.tar.gz
The root of the source tree will be will be /home/YOURUSERNAME/stellarium for simplicity
Development versions from the Bazaar repository
- See also Bzr checkout
You can try the latest development code by downloading from the bzr repositry using the TortoiseSVN client bzr shell. This program integrates with the Windows file browser. See the TortoiseSVN website for details. Check out the source by entering the folder where you have the stellarium source code and from the Windows menu bar:
Files - TortoiseBZR - update. The default will be the working tree then press enter
Check out to the /home/YOURUSERNAME directory within MSYS (typically this is C:\msys\1.0\home\YOURUSERNAME\ within the Windows filesystem).
The root of the source tree will be /home/YOURUSERNAME/stellarium
- Open an MSYS console, and change directory into the root of the source tree, e.g.
- make a build directory and change into it:
mkdir -p builds/msys && cd builds/msys
- run CMake:
cmake -G "MSYS Makefiles" ../..
- See the notes below for solutions to some common errors
- run make:
make && echo "BUILD WORKED" || echo "BUILD FAILED"
- There will be quite a few warnings. These can usually be ignored. You will see a message, "BUILD #:WORKED" or "BUILD FAILED" telling you if it was successful.
- run make install
This will place all the compiled files in program files\stellarium. From where they will be found when you run the installer program stellariun.css after you install the Inno Setup Compiler
Doing a test run
If the build was successful, you can run the program without installing it, just to test everything is OK. First you need to find all the DLLs which Stellarium uses, and copy them to the root of the source tree:
- From the \QT\4.7.2\Qt\bin: QtCore4.dll, phonon4.dll, QtGui4.dll, QtScript4.dll, QtNetwork4.dll, QtOpenGL4.dll, QtSvg4.dll, qtxml4.dll and Qtsql4.dll
Qtsql4.dll is not needed with version 0.10.6
- From the \QT\4.7.2\Qt\plugins\sqldrivers\qsqlite.dll: to \sqldrivers\qsqlite4.dll (not needed with version 0.10.6)
- From the \Qt\4.7.2\mingw\bin folder: libiconv2.dll libintl3.dll mingwm10.dll zlib1.dll libgcc_s_dw2-1.dll
If you need a language other than English copy the locale folder from \program files\stellarium\share to the stellarium source tree root folder
For Qt 4.8.0 compiles From \Mingw\bin Mingwm10.dll, libintl3.dll, libiconv2.dll, libgcc_s_dw2-1.dll, zlib1.dll from \Qt\4.8.0\qt\bin QtXml4.dll, QtSvg4.dll, QtSql4.dll, Qtscript4.dll, QtOpenGl4.dll, QtNetwork4.dll, QtGui4.dll, QtCore4.dll, Phonon4.dll
If you're still in the build directory, change back to the root of the source tree:
Then call the program with this command:
If all is well, Stellarium should launch.
This will place all the necessary files in your program files folder stellarium where the installer expects to find them.
Making the installer
We use the Inno Setup Compiler to create the installer. These details are for builds source later than 6052
From http://www.jrsoftware.org download isetup-5.2.2.exe, run it to install.
If you have followed the above procedure the current svn build will generate the necessary stellarium.iss file. Double click on it, then from the menu bar "build-compile". It will build the stellarium installer package and place it in a folder of the stellarium source tree root folder "installers"
Run the program generated and Stellarium will be installed in program files\stellarium or wherever you select and place an icon on the desktop.
Note 1: If the compile fails with the error "can't find a particular file". Check the cmakecache.txt file in the ...\build\msys folder and make sure the variable/path/file is directed to the correct source.
Note 2: If you needed to upgrade to Qt/4.7.2 delete the contents of the old builds/msys folder before starting the compile. In fact it is always best to delete the contents of the builds/msys folder with any change to the dependancies.
Note 3: Some builds cannot find libintl.h for simplicity make a copy of dev-cpp\include\libintl.h and place it in stellarium\src\external
Note 4: Stellarium is compiled to specifically use OpenGl2 for enhanced video. If your video card does not have OpenGl2 compatable drivers you can force OpenGL1 by placing use_qpaintenginegl2 = false in the [main] section of the config.ini file
Building with Microsoft Visual Studio 8.0
NOTE: these instructions are quite out of date.
After couple of weeks work I finally got the stellarium compiled and run using MS VisualStudio 8.0. MS C/C++ compiler is quite strict with the declarations of the variables and there is some differences with the functions that MS has/has not, but finally I got it work. A huge patch is posted to Fabien, waiting it to be approved ...
Use SVN to get the source code
- Install development tools as described above, including Tortoise SVN (requires reboot)
- Start MSYS. This will create the directory
- Browse there with file explorer.
- Right click in the folder and select SVN Checkout from the popup menu
- In the URL of Repository edit box, enter the URL of the SVN repository, which is
- In your .profile, set STELROOT like this:
- Optionally repeat the checkout process for the plugins with the URL:
The result should be that when you start MSYS, you should see two sub-directories in your home directory:
And you should also have an environment variable STELROOT set which points at the full path of the stellarium directory.
- boost : from http://www.boost.org/
- libintl: from http://gnuwin32.sourceforge.net/
- zlib: http://www.zlib.net
- SDL: http://www.libsdl.org/
- libpng: http://www.libpng.org/pub/png/libpng.html
- freetype: http://freetype.sourceforge.net/index2.html
- libjpeg: http://freshmeat.net/projects/libjpeg/
Download the libraries and the development files (include the needed header-files), install packages and go on ...
Getting the source code : use 'SVN