[Marble-devel] Error compiling marble on Windows 7 64bits with MingW

philippe renon philippe_renon at yahoo.fr
Mon Oct 7 21:33:57 UTC 2013


I made good progress. Marble is now integrated in OpenPilot Ground Control Station  (GCS).
It sounds pompous, but that's the name of the piece of software I am contributing too.

By integrated, I actually mean that I can display maps in the windows version of GCS. 

GCS is a Qt 4.8.4 application supported on linux, macos and windows.

One of the features we would like to add to GCS using Marble is a way point editor for planning UAV missions.
It would be similar in ways to the routing provided in Marble but adapted to RC flying vehicles (fixed wings, helicopters, multi-rotors, ...).
No need to follow streets, height map can be used for warning about potential ground collision, etc...

That's where a question comes in : is there a way to turn off routing?
Apparently the routing feature is hardwired in QtMainApplication and MarbleWidget.
It is possible to disable it by changing the planetId to something else from "earth".
But this is not so practical as most of the things we fly need an atmosphere.

If the above is correct, what would be the best way possible to make routing optional?
- using #ifdef
- using flag
- moving code to somewhere (RoutingLayer?)
If given directions, I could try to take a look at how to do it.

Anyways, all I have seen of Marble has been great and the little coding I have done was fun.
The code looks great too, lots of good practices to be taken there.

Cheers,
Philippe.


PS : For future reference here are the difficulties encountered :

- Compilation problems : removed -DWITH_DESIGNER_PLUGIN=ON from command line

- Map creation problem ("stuck" in map creation dialog) : added missing Qt imageformats plug-ins.

- Debug mode bug causing crash in the marble widget constructor : switched to release mode
- Missing header files in install/include/marble, namely:
    * MarbleWidgetPopupMenu.h
    * MarbleDebug.h
  Adding both headers to /src/lib/CMakeLists.txt worked effectively.



>________________________________
> De : philippe renon <philippe_renon at yahoo.fr>
>À : philippe renon <philippe_renon at yahoo.fr>; "marble-devel at kde.org" <marble-devel at kde.org> 
>Envoyé le : Mardi 24 septembre 2013 17h54
>Objet : Re: Error compiling marble on Windows 7 64bits with MingW
> 
>
>
>Success at last.
>
>
>
>Removing -DWITH_DESIGNER_PLUGIN=ON from the cmake command line did the trick.
>I don't know why I did not try that earlier... error was in the designer part and I don't need Qt Creator integration.
>My guess is that the root cause has to do with the Qt declarative plugins. Will check that later.
>
>
>
>Compile and install completed to the end. 
>Desktop marble starts but gets stuck indefinitely on the "Creating map" dialog (which cannot be canceled at the stage it is stuck in).
>Next steps : build a Debug version and see if I get informative messages w/r to the issue.
>
>
>Regards,
>Philippe.
>
>
>
>
>>________________________________
>> De : philippe renon <philippe_renon at yahoo.fr>
>>À : philippe renon <philippe_renon at yahoo.fr>; "marble-devel at kde.org" <marble-devel at kde.org> 
>>Envoyé le : Dimanche 22 septembre 2013 13h42
>>Objet : Re: Error compiling marble on Windows 7 64bits with MingW
>> 
>>
>>
>>Hi again,
>>
>>
>>Could someone share a setup known to work:
>>- version of CMake?
>>- version of Qt?
>>
>>
>>I have tried several branched (KDE/4.11, master and qt5) without success.
>>
>>
>>
>>Thanks and regards,
>>Philippe.
>>
>>
>>
>>
>>>________________________________
>>> De : philippe renon <philippe_renon at yahoo.fr>
>>>À : philippe renon <philippe_renon at yahoo.fr>; "marble-devel at kde.org" <marble-devel at kde.org> 
>>>Envoyé le : Mardi 3 septembre 2013 21h32
>>>Objet : Re: Error compiling marble on Windows 7 64bits with MingW
>>> 
>>>
>>>
>>>Hi again,
>>>
>>>A bit of background : I am interested in building marble to integrate it in the OpenPilot Ground Control Station (GCS).
>>>OpenPilot is an open source project aimed at providing hardware and software to fly and operate UAVs.
>>>More information can be found here : http://www.openpilot.org/
>>>Integrating marble in the GCS makes a lot of sense!
>>>
>>>More information about the build issue:
>>>I have it against branch KDE/11 (I also tried
 to build master but ran in other kind of issues which I sort of expected on a non stable branch).
>>>I am pretty new to marble and CMake and would appreciate some help.
>>>
>>>The full CMake build log follows:
>>>
>>>
>>>
>>>-- Please include plugins in the QML_IMPORT_PATH environment variable to use Marble's Qt declarative plugins.
>>>-- Note: Marble Desktop
 does not make use of declarative plugins. Ignore the message above if you only intend to use the
>>> Desktop version.
>>>-- Could NOT find Phonon (missing:  PHONON_LIBRARY)
>>>-- Could NOT find QextSerialPort (missing:  QEXTSERIALPORT_INCLUDE_DIR QEXTSERIALPORT_LIBRARIES)
>>>-- Could NOT find quazip (missing:  QUAZIP_INCLUDE_DIR QUAZIP_LIBRARIES)
>>>-- Could NOT find libshp (missing:  LIBSHP_INCLUDE_DIR LIBSHP_LIBRARIES)
>>>-- Could NOT find libgps (missing:  LIBGPS_INCLUDE_DIR LIBGPS_LIBRARIES)
>>>-- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE)
>>>-- Could NOT find PkgConfig (missing:  PKG_CONFIG_EXECUTABLE)
>>>-- Could NOT find QtMobility (missing:  QTMOBILITY_INCLUDE_DIR)
>>>-- Could NOT find QtLocation (missing:  QTLOCATION_INCLUDE_DIR QTLOCATION_LIBRARIES)
>>>-- Could NOT find libwlocate (missing:  LIBWLOCATE_INCLUDE_DIR LIBWLOCATE_LIBRARIES)
>>>--
>>>-- The following REQUIRED
 packages have been found:
>>>
>>> * Qt4 , cross-platform application framework , <http://qt.digia.com/>
>>>   core framework
>>>
>>>-- The following OPTIONAL packages have not been found:
>>>
>>> * Phonon , cross-platform multimedia framework that enables the use of audio and video content , <http://qt.digia.com/>
>>>
>>>   Voice navigation (sound or human speakers)
>>> * QextSerialPort , access to serial ports , <http://code.google.com/p/qextserialport/>
>>>   Reading from serial port in APRS plugin
>>> * quazip , reading and writing of ZIP archives , <http://quazip.sourceforge.net/>
>>>   reading and displaying .kmz files
>>> * libshp , reading and writing of ESRI Shapefiles (.shp) , <http://shapelib.maptools.org/>
>>>   reading and displaying .shp files
>>> * libgps , communicating with the GPS daemon ,
 <http://catb.org/gpsd/>
>>>   position information via gpsd
>>> * liblocation , position information on Maemo 5 devices , <http://maemo.org/>
>>>   position information via GPS/WLAN for the Nokia N900 smartphone
>>> * QtMobility , a collection of APIs and frameworks , <http://qt.digia.com/>
>>>   Required for QtLocation to work
>>> * QtLocation , geographical support for position and map use , <http://qt.digia.com/>
>>>   position information via QtMobility QtLocation
>>> * libwlocate , WLAN-based geolocation , <http://www.openwlanmap.org/>
>>>   Position information based on neighboring WLAN networks
>>>
>>>-- Configuring done
>>>CMake Warning (dev) at src/lib/CMakeLists.txt:279 (ADD_LIBRARY):
>>>  Policy CMP0003 should be set before this line.  Add code such as
>>>
>>>    if(COMMAND
 cmake_policy)
>>>      cmake_policy(SET CMP0003 NEW)
>>>    endif(COMMAND cmake_policy)
>>>
>>>  as early as possible but after the most recent call to
>>>  cmake_minimum_required or cmake_policy(VERSION).  This warning appears
>>>  because target "marblewidget" links to some libraries for which the linker
>>>  must search:
>>>
>>>    ws2_32, imm32, winmm
>>>
>>>  and other libraries with known full path:
>>>
>>>    D:/Projects/OpenPilot/tools/qt-4.8.4/lib/libQtCore4.a
>>>
>>>  CMake is adding directories in the second list to the linker search path in
>>>  case they are needed to find libraries from the first list (for backwards
>>>  compatibility with CMake 2.4).  Set policy CMP0003 to OLD or NEW to enable
>>>  or disable this behavior explicitly.  Run "cmake --help-policy CMP0003" for
>>>  more information.
>>>This
 warning is for project developers.  Use -Wno-dev to suppress it.
>>>
>>>-- Generating done
>>>-- Build files have been written to: D:/Projects/marble/build
>>>
>>>
>>>
>>>>________________________________
>>>> De : philippe renon <philippe_renon at yahoo.fr>
>>>>À : "marble-devel at kde.org" <marble-devel at kde.org> 
>>>>Envoyé le : Dimanche 1 septembre 2013 21h50
>>>>Objet : Error compiling marble on Windows 7 64bits with MingW
>>>> 
>>>>
>>>>
>>>>Hi,
>>>>
>>>>I have been trying to compile marble on Windows 7 64 bits using MingW but get the following error:
>>>>
>>>>[ 64%] Generating MarbleWidgetPlugin.moc
>>>>D:/Projects/marble/sources/src/plugins/designer/marblewidget/MarbleWidgetPlugin.h:26: Error: Undefined interface
>>>>mingw32-make[2]: *** [src/plugins/designer/marblewidget/MarbleWidgetPlugin.moc] Error 1
>>>>mingw32-make[1]: *** [src/plugins/designer/marblewidget/CMakeFiles/MarbleWidgetPlugin.dir/all] Error 2
>>>>mingw32-make: *** [all] Error 2
>>>>
>>>>
>>>>
>>>>Apparently, same issue happens on osx but the proposed workaround (as explained in the MarbleWidgetPlugin.h) did not work in my case.
>>>>
>>>>
>>>>
>>>>Windows is 64bits but I am trying to build 32 bits version of marble.
>>>>
>>>>
>>>>
>>>>Here is the build script I use:
>>>>
>>>>
>>>>export CMAKEDIR=/D/OpenPilotDev/cmake-2.8.11.2-win32-x86
>>>>export QTDIR=/D/Projects/OpenPilot/tools/qt-4.8.4
>>>>export MINGWDIR=/D/Projects/OpenPilot/tools/mingw-4.4.0
>>>>
>>>>export PATH=$CMAKEDIR/bin:$MINGWDIR/bin:$QTDIR/bin:$PATH:
>>>>
>>>>#export LD_LIBRARY_PATH=$QTDIR/lib
>>>>
>>>>mkdir -p ./build
>>>>cd ./build
>>>>
>>>>cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release -DQTONLY=ON -DWITH_DESIGNER_PLUGIN=ON ../sources
>>>>
>>>>mingw32-make -j2
>>>>mingw32-make install
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/marble-devel/attachments/20131007/c4928fd3/attachment-0001.html>


More information about the Marble-devel mailing list