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

Simon Schmeißer mail_to_wrt at gmx.de
Tue May 11 14:43:19 CEST 2010


Hi Sylvain,

Am Montag, 10. Mai 2010 19:37:41 schrieb Sylvain Paré:
> Hello every one,
> 
> As I told it some times ago I am trying to build my application using
> libmarble on windows(xp) with Qt Creator.
> I will post here all the whole process and problems encountered gradually.
> You are welcome to help me to solves those issues if you have answers! :)
> 
> At last when the work-through will be found, I will sum it up here as a
> proposal for an HOWTO on the KDE Techbase.
> 
cool

> So here is the beginning until the first blocking point :
> 
> First build Marble:
> 
>    - installation of Qt sdk
> 2010.02.1<http://get.qt.nokia.com/qtsdk/qt-sdk-win-opensource-2010.02.1.exe
> >(Qt Creator 1.3.1 Qt 4.6.2 MinGW 3.15 GCC4.4.0)
>    - installation CMAKE
> 2.8.1<http://www.cmake.org/files/v2.8/cmake-2.8.1-win32-x86.exe>,
> during the installation check the box " Add CMake to the system"
>    - following this http://edu.kde.org/marble/obtain.php => svn co marble;
>    create 'marble-build' dir in the new checked out folder
>    - as explained
> here<http://doc.qt.nokia.com/qtcreator-1.1/creator-cmake-support.html>impor
> t the marble\CMakeLists.txt passing "-DQTONLY=ON ../" argument
>    - you obtain this message error :
> 
> CMake Error: CMake was unable to find a build program corresponding to
> "MinGW Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to
> select a different build tool.
> CMake Error: CMake was unable to find a build program corresponding to
> "MinGW Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to
> select a different build tool.
> CMake Error: Error required internal CMake variable not set, cmake may be
> not be built correctly.
> Missing variable is:
> CMAKE_C_COMPILER_ENV_VAR
> CMake Error: Error required internal CMake variable not set, cmake may be
> not be built correctly.
> Missing variable is:
> CMAKE_C_COMPILER
> CMake Error: Could not find cmake module
> file:D:/marbleSVN/marble-build/CMakeFiles/CMakeCCompiler.cmake
> CMake Error: Error required internal CMake variable not set, cmake may be
> not be built correctly.
> Missing variable is:
> CMAKE_CXX_COMPILER_ENV_VAR
> CMake Error: Error required internal CMake variable not set, cmake may be
> not be built correctly.
> Missing variable is:
> CMAKE_CXX_COMPILER
> CMake Error: Could not find cmake module
> file:D:/marbleSVN/marble-build/CMakeFiles/CMakeCXXCompiler.cmake
> CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
> CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
> -- Configuring incomplete, errors occurred!
> 
>    - I haven't found yet how to solve this (i.e indicate to CMake the path
>    of MinGW, I set an environment variable but it did not fix this.. if you
>    have the answer.) properly so I just copy/paste C:\Qt\2010.02.1\mingw 
>  to C:\mingw
>    - now when you retry to import your cmake project in Qt Creator you have
>    this error :
> 
> -- The C compiler identification is unknown
> 
> -- The CXX compiler identification is unknown
> 
> -- Check for working C compiler: C:/mingw/bin/gcc.exe
> 
> -- Check for working C compiler: C:/mingw/bin/gcc.exe -- broken
> 
> CMake Error at C:/Program Files/CMake
> 2.8/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:52 (MESSAGE):
> 
> The C compiler "C:/mingw/bin/gcc.exe" is not able to compile a simple
> testprogram.
> 
> It fails with the following output: Change Dir:
> D:/marbleSVN/marble-build/CMakeFiles/CMakeTmp
> 
> 
>   Run Build Command:C:/mingw/bin/mingw32-make.exe "cmTryCompileExec/fast"
> 
> C:/mingw/bin/mingw32-make.exe -f CMakeFiles\cmTryCompileExec.dir\build.make
> 
> CMakeFiles/cmTryCompileExec.dir/build
> 
> mingw32-make.exe[1]: Entering directory
> 
> `D:/marbleSVN/marble-build/CMakeFiles/CMakeTmp'
> 
> "C:\Program Files\CMake 2.8\bin\cmake.exe" -E cmake_progress_report
> 
> D:\marbleSVN\marble-build\CMakeFiles\CMakeTmp\CMakeFiles 1
> 
> Building C object CMakeFiles/cmTryCompileExec.dir/testCCompiler.c.obj
> 
> C:\mingw\bin\gcc.exe -o CMakeFiles\cmTryCompileExec.dir\testCCompiler.c.obj
> 
> -c D:\marbleSVN\marble-build\CMakeFiles\CMakeTmp\testCCompiler.c
> 
> mingw32-make.exe[1]: ***
> 
> [CMakeFiles/cmTryCompileExec.dir/testCCompiler.c.obj] Error 1
> 
> mingw32-make.exe[1]: Leaving directory
> 
> `D:/marbleSVN/marble-build/CMakeFiles/CMakeTmp'
> 
> mingw32-make.exe: *** [cmTryCompileExec/fast] Error 2
> 
> 
>    CMake will not be able to correctly generate this project.
> 
> Call Stack (most recent call first):
> 
> CMakeLists.txt:1 (project)
> 
> -- Configuring incomplete, errors occurred!
> 
> 
> So here where I am!
> 
> If any one can help...

I'll try to do so ... 

1. check that cmake.exe and gcc.exe are in your %PATH%
-   open a commandline-window (start->run programm->cmd)
-   run "cmake" - it should give you a help message and show you what 
compilation options it found
-   run "gcc -v" it should give you version info
-   run "qmake" it should give you help output

if any of those doesn't work you need to add the relevant path to the system 
variable:
http://www.computerhope.com/issues/ch000549.htm

(Hint: make sure not to add the directory %QT-installation-dir%/bin but rather 
%QT-installation-dir%/qt/bin, there are for some reason incompatible dll's 
that might lead to crashes)

2. now you can compile marble
open the cmd-window
cd to the marble dir
create a build directory (mkdir build)
cd build
cmake -G "MinGW Makefiles" ..
(I don't think you need to pass the -DQTONLY=on as it will build qtonly by 
default if no kde-libraries are found)

3. check that marble runs

4. find out what you need to do if you want to integrate it into Qt Creator

however I would not try to load marble in qt-creator but rather only use 
marble as a static library (.a) that is linked into or as a dynamic library 
(.a +.dll) and use Qt Creator only for your custoum code, this might save you 
some troubles?
> 
> I will continue to search a solution tomorrow
> 
good luck
> CU
> 
> Sylvain (aka GarthPS)
> 
cu
Simon


More information about the Marble-devel mailing list