Building QtiPlot (with some plugins) on Windows

Building QtiPlot on Windows is very difficult due to lack of proper building instructions. From the available maintainer's source code, it is impossible to build a full featured QtiPlot due to the fact that it is not 100% Open Source. The following features are Closed Source: Full import of OriginLab® Origin projects, Excel workbooks and Open Document Format spreadsheets, dBase, SQLite and Microsoft Access databases; plot export to image format EMF.

The license of QtiPlot is GPLv2orlater and the maintainer is Ion Vasilief. To understand the implementation of an import/export plugin interface in QtiPlot and the licensing of that plugin, I created the 'export images to the EMF format' and 'import Origin files' plugins. QtiPlot is linked to the plugin and they make function calls to each other and share data structures, this makes them form a single program and this means the plugins must be released under the GPL. Ion Vasilief is in violation of the GPL by not publishing the source code of the plugins he distributes.

The building instructions are for a win32(x86) platform with Python support (version 2.7.x) and with the 'export images to the EMF format' and 'import Origin files' features. You can build and run the 32-bit QtiPlot application on Windows 7 64-bit Operating System. You will need to unpack some files; 7-Zip is very good.
You can build QtiPlot in many different ways. On 'How to Compile QtiPlot for Windows (v' you can find the build for version and links to web pages for builds for even older versions. You don't have to follow the building instructions to the letter. If you deviate, then you must know what you are doing, else you be in trouble.

TIP! If you need to edit some files, then Notepad++ is a good editor.

The Downloads

The download links are dated November 2011. Download location c:\download will be used later on in this building instruction.

TIP! If you have download speed problems and you have the availability of a proxy server then try to use the proxy server.

The Installations

Installing MSYS can cause an error. Restart the computer and reinstall MSYS to solve the problem. Installing MSYS does not go smoothly, be patient.

The MSYS session

Open a MSYS session (C:\msys\1.0\msys.bat)

$ mkdir src
$ cd src
$ tar -xvf /c/download/gsl-1.15.tar.gz
$ cd gsl-1.15
$ ./configure --prefix=/mingw
$ make
$ mkdir /build
$ mkdir /build/gsl
$ DESTDIR=/build/gsl make install
$ make install
$ mkdir /c/qtiplot-
$ cp -a /build/gsl/mingw/* /c/qtiplot-
$ cd ../
$ tar -xvf /c/download/tamu_anova-0.2.tar.gz
$ cd tamu_anova-0.2
$ ./configure
$ make
$ mkdir /build/tamu_anova
$ DESTDIR=/build/tamu_anova make install
$ mkdir /c/qtiplot-
$ cp /build/tamu_anova/usr/lib/libtamuanova.a \
> /c/qtiplot-
$ cp /build/tamu_anova/usr/local/include/tamu_anova/tamu_anova.h \
> /c/qtiplot-
The Qt 4.6.4 Command Promp session

Open a Qt Command prompt session (%COMSPEC% /k "C:\Qt\4.6.4\bin\qtvars.bat").
If you get an error message 'mingw32-make: Interrupt/Exception caught (code = 0xc0000005, addr = 0x41f96e)', don't include the 7-Zip path in the path variable.

TIP! Setting the environment variable LC_ALL to C (set LC_ALL=C) will default GCC to the traditional C English behavior.

C:\Qt\4.6.4>cd \
C:\>path %path%;C:\Python27;"C:\Program Files\7-Zip"
C:\>7z x -oc:\ \download\
C:\>cd sip-4.13
C:\sip-4.13>python -p win32-g++
C:\sip-4.13>make install
C:\sip-4.13>cd \
C:\>7z x -oc:\ \download\
C:\>cd \PyQt-win-gpl-4.8.6
C:\PyQt-win-gpl-4.8.6>make install
C:\PyQt-win-gpl-4.8.6>cd \qtiplot-\3rdparty
C:\qtiplot-\3rdparty>7z x -o. \download\
C:\qtiplot-\3rdparty>ren muparser_v2_0_0 muparser
C:\qtiplot-\3rdparty>cd muparser\build
C:\qtiplot-\3rdparty\muparser\build>make -f makefile.mingw
C:\qtiplot-\3rdparty\muparser\build>cd ..\..\
C:\qtiplot-\3rdparty>7z x -o. ^
More? \download\
C:\qtiplot-\3rdparty>cd QTeXEngine
C:\qtiplot-\3rdparty\QTeXEngine>cd ..
C:\qtiplot-\3rdparty>7z x -o. \download\
C:\qtiplot-\3rdparty>ren cpp alglib
C:\qtiplot-\3rdparty>cd alglib
C:\qtiplot-\3rdparty\alglib>build.bat mingw
C:\qtiplot-\3rdparty\alglib>cd ..\
C:\qtiplot-\3rdparty>7z x -o. ^
More? \download\boost_1_47_0.7z boost_1_47_0\boost
C:\qtiplot-\3rdparty>ren boost_1_47_0 boost
C:\qtiplot-\3rdparty>cd ..\
C:\qtiplot->7z x -o. -y ^
More? "\download\plugins qtiplot- build-1 config.7z"
The Binaries and support files for distribution

Continue the Qt Command prompt session (%COMSPEC% /k "C:\Qt\4.6.4\bin\qtvars.bat").

C:\qtiplot->cd \
C:\>ren qtiplot- qtiplot-
C:\>mkdir qtiplot-
C:\>cd qtiplot-
C:\qtiplot->mkdir fitplugins
C:\qtiplot->mkdir iconengines
C:\qtiplot->mkdir imageformats
C:\qtiplot->mkdir manual
C:\qtiplot->mkdir PyQt4
C:\qtiplot->mkdir scripts
C:\qtiplot->mkdir translations
C:\qtiplot->copy \qtiplot-\fitplugins\*.dll fitplugins
C:\qtiplot->copy \Qt\4.6.4\plugins\iconengines\qsvgicon4.dll ^
More? iconengines
C:\qtiplot->set LIST=qgif4.dll, qico4.dll, qjpeg4.dll, qmng4.dll, ^
More? qsvg4.dll, qtiff4.dll
C:\qtiplot->for %i in (%LIST%) do copy ^
More? \Qt\4.6.4\plugins\imageformats\%i imageformats
C:\qtiplot->copy con manual\index.html
C:\qtiplot->cd \Python27\Lib\site-packages
C:\Python27\Lib\site-packages>copy sip.pyd \qtiplot-
C:\Python27\Lib\site-packages>cd PyQt4
C:\Python27\Lib\site-packages\PyQt4>copy \qtiplot-\PyQt4
C:\Python27\Lib\site-packages\PyQt4>copy QtCore.pyd \qtiplot-\PyQt4
C:\Python27\Lib\site-packages\PyQt4>copy QtGui.pyd \qtiplot-\PyQt4
C:\Python27\Lib\site-packages\PyQt4>cd \qtiplot-
C:\qtiplot->copy \qtiplot-\gpl_licence.txt .
C:\qtiplot->copy \qtiplot-\qtiplot.exe .
C:\qtiplot->copy \qtiplot-\qwtplot3d.dll .
C:\qtiplot->copy \qtiplot-\qtiplot\qti_wordlist.txt .
C:\qtiplot->copy \qtiplot-\qtiplot\ .
C:\qtiplot->copy \qtiplot-\qtiplot\ .
C:\qtiplot->copy \mingw\bin\libgcc_s_dw2-1.dll .
C:\qtiplot->copy \mingw\bin\libpng3.dll .
C:\qtiplot->copy \mingw\bin\mingwm10.dll .
C:\qtiplot->copy \mingw\bin\zlib1.dll .
C:\qtiplot->set LIST=Qt3Support4.dll, QtAssistantClient4.dll, ^
More? QtCore4.dll, QtGui4.dll, QtNetwork4.dll, QtOpenGL4.dll, QtSql4.dll, ^
More? QtSvg4.dll, QtXml4.dll, assistant_adp.exe
C:\qtiplot->for %i in (%LIST%) do copy \Qt\4.6.4\bin\%i .

The binaries and support files can be found in the file qtiplot- The build is with Python 2.7 support and it depends on Python 2.7 being installed in the default way (location c:\Python27). If you want to use additional Python libraries (e.g. NymPy or SciPy) in QtiPlot then you can install them in the usual way. Do not forget to change the Python configuration file ( location in the preferences.

Condensed Matter and Interfaces - Debye Institute
Building QtiPlot
Valid HTML 4.01 Transitional
Valid CSS!
CMI home email