在Ubuntu x64上构建Marble

时间:2016-05-02 14:53:21

标签: qt marble

所以,这是交易。 我正在建造大理石,我在Ubuntu上从https://marble.kde.org/sources.php得到了女巫

(uname -a returnes: Linux pe-X550CC 4.4.0-21-generic #37-Ubuntu SMP Mon Apr 18 18:33:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux)

我使用cmake版本3.5.1构建 cmake的输出是:

-- Please include /usr/lib/x86_64-linux-gnu/marble/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.
-- Checking for module 'liblocation>=0.102'
--   
-- 
-- The following features have been enabled:

 * Unit tests , Build unit tests. Toggle with BUILD_MARBLE_TESTS=YES/NO. 'make test' will run all.
 * Qt Designer plugins , Marble widget support in Qt Designer. Toggle with WITH_DESIGNER_PLUGIN=YES/NO
 * Marble Desktop/Mobile applications , Build Marble Desktop/Mobile applications. Toggle with BUILD_MARBLE_APPS=YES/NO.

-- The following OPTIONAL packages have been found:

 * Qt5Gui (required version >= 5.5.1)
 * Qt5WebKit
 * Qt5WebKitWidgets
 * Qt5UiPlugin (required version >= 5.5.1)
 * Qt5Designer
 * Phonon , cross-platform multimedia framework that enables the use of audio and video content , <http://qt.digia.com/>
   Support for playback of soundcue elements
   Voice navigation (sound or human speakers)
 * Perl , <http://www.perl.org>
   generation of sources in the APRS plugin
 * QextSerialPort , access to serial ports , <http://code.google.com/p/qextserialport/>
   Reading from serial port in APRS plugin
 * libgps , communicating with the GPS daemon , <http://catb.org/gpsd/>
   position information via gpsd
 * Qt5Location , geographical support for position and map use , <http://qt.digia.com/>
   position information via Qt5Positioning and QtLocation
 * Qt5Positioning , a collection of APIs and frameworks , <http://qt.digia.com/>
   Required for QtLocation to work
 * libwlocate , WLAN-based geolocation , <http://www.openwlanmap.org/>
   Position information based on neighboring WLAN networks
 * libshp , reading and writing of ESRI Shapefiles (.shp) , <http://shapelib.maptools.org/>
   reading and displaying .shp files

-- The following REQUIRED packages have been found:

 * Qt5DBus
 * Qt5Core
 * Qt5Xml
 * Qt5Network
 * Qt5Test
 * Qt5Script
 * Qt5Widgets
 * Qt5Svg
 * Qt5Sql
 * Qt5Concurrent
 * Qt5Qml (required version >= 5.5.1)
 * Qt5Quick
 * Qt5OpenGL
 * Qt5PrintSupport

-- The following features have been disabled:

 * Marble tools , Build various Marble tools for e.g. file format conversion. Toggle with BUILD_MARBLE_TOOLS=YES/NO.
 * Marble library C++ examples , Build C++ examples showing how to use the Marble library. Toggle with BUILD_MARBLE_EXAMPLES=YES/NO.

-- The following OPTIONAL packages have not been found:

 * liblocation , position information on Maemo 5 devices , <http://maemo.org/>
   position information via GPS/WLAN for the Nokia N900 smartphone

-- Configuring done
-- Generating done
-- Build files have been written to: /home/pe/marble/build

对我来说似乎很好,所以,做make)

[ 72%] Building CXX object src/plugins/runner/nominatim-search/CMakeFiles/NominatimSearchPlugin.dir/OsmNominatimSearchRunner.cpp.o
/home/pe/marble/sources/src/plugins/positionprovider/gpsd/GpsdPositionProviderPlugin.cpp: In member function ‘void Marble::GpsdPositionProviderPlugin::update(gps_data_t)’:
/home/pe/marble/sources/src/plugins/positionprovider/gpsd/GpsdPositionProviderPlugin.cpp:79:68: error: ‘isnan’ was not declared in this scope
     if ( data.status == STATUS_NO_FIX || isnan( data.fix.longitude ) || isnan( data.fix.latitude ) )
                                                                    ^
/home/pe/marble/sources/src/plugins/positionprovider/gpsd/GpsdPositionProviderPlugin.cpp:79:68: note: suggested alternative:
In file included from /usr/include/c++/5/random:38:0,
                 from /usr/include/c++/5/bits/stl_algo.h:66,
                 from /usr/include/c++/5/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:85,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qchar.h:37,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:41,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/qdatetime.h:37,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/QDateTime:1,
                 from /home/pe/marble/sources/src/lib/marble/PositionProviderPluginInterface.h:14,
                 from /home/pe/marble/sources/src/lib/marble/PositionProviderPlugin.h:14,
                 from /home/pe/marble/sources/src/plugins/positionprovider/gpsd/GpsdPositionProviderPlugin.h:14,
                 from /home/pe/marble/sources/src/plugins/positionprovider/gpsd/GpsdPositionProviderPlugin.cpp:11:
/usr/include/c++/5/cmath:641:5: note:   ‘std::isnan’
     isnan(_Tp __x)
     ^
src/plugins/positionprovider/gpsd/CMakeFiles/GpsdPositionProviderPlugin.dir/build.make:86: recipe for target 'src/plugins/positionprovider/gpsd/CMakeFiles/GpsdPositionProviderPlugin.dir/GpsdPositionProviderPlugin.cpp.o' failed
make[2]: *** [src/plugins/positionprovider/gpsd/CMakeFiles/GpsdPositionProviderPlugin.dir/GpsdPositionProviderPlugin.cpp.o] Error 1
CMakeFiles/Makefile2:4756: recipe for target 'src/plugins/positionprovider/gpsd/CMakeFiles/GpsdPositionProviderPlugin.dir/all' failed
make[1]: *** [src/plugins/positionprovider/gpsd/CMakeFiles/GpsdPositionProviderPlugin.dir/all] Error 2

关于如何构建Marble的任何想法?

1 个答案:

答案 0 :(得分:0)

在此期间,应用程序/ 16.04和主分支中已修复此问题,请参阅https://phabricator.kde.org/rMARBLE38b0024。它应该在您更新本地存储库时有效。