This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Marble Qt 5.3.0 MinGW 32-bit Linker issue in Annotate plugin

Tags: None
(comma "," separated)
marktaff
Registered Member
Posts
1
Karma
0
Hi all. :-)

I'm have some issues compiling marble that I've been unable to resolve on my own, and I'm hopeful someone will be able to help me with.

Win7, Qt 5.3.0 w/ QtCreator, compiling with MinGW 4.8.2 32bit. I'm trying to compile master from git.

CMake options:
Code: Select all
-DQTONLY=TRUE -DCMAKE_PREFIX_PATH=C:\Qt\5.3\mingw482_32\lib\cmake -DQT5BUILD=1 -DCMAKE_BUILD_TYPE=Debug

CMake output:
Code: Select all
-- 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_INCLUDE_DIR PHONON_LIBRARY)
-- Could NOT find Phonon (missing:  PHONON_INCLUDE_DIR 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 libwlocate (missing:  LIBWLOCATE_INCLUDE_DIR LIBWLOCATE_LIBRARIES)
--
-- The following features have been enabled:

 * 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 REQUIRED packages have been found:

 * Qt5Core
 * Qt5Xml
 * Qt5Network
 * Qt5Test
 * Qt5Script
 * Qt5Gui (required version >= 5.3.0)
 * Qt5Widgets
 * Qt5Qml (required version >= 5.3.0)
 * Qt5Quick (required version >= 5.3.0)
 * Qt5Multimedia (required version >= 5.3.0)
 * Qt5MultimediaWidgets (required version >= 5.3.0)
 * Qt5OpenGL (required version >= 5.3.0)
 * Qt5WebKit (required version >= 5.3.0)
 * Qt5Positioning (required version >= 5.3.0)
 * Qt5Sensors (required version >= 5.3.0)
 * Qt5WebKitWidgets
 * Qt5Svg
 * Qt5Sql
 * Qt5Concurrent
 * Qt5PrintSupport
 * Qt5Designer

-- The following features have been disabled:

 * Unit tests , Build unit tests. Toggle with BUILD_MARBLE_TESTS=YES/NO. 'make test' will run all.
 * 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:

 * 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)
 * 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
 * libwlocate , WLAN-based geolocation , <http://www.openwlanmap.org/>
   Position information based on neighboring WLAN networks

-- Configuring done
-- Generating done
-- Build files have been written to: E:/work/documents/trunk/lpws/app/marble/marble-build

The build keeps failing in plugins\render\annotate\EditGroundOverlayDialog.cpp. I'm getting warnings about functions being 'redeclared without dllimport attribute', to wit:
Code: Select all
E:\work\documents\trunk\lpws\app\marble\marble\src\plugins\render\annotate\EditGroundOverlayDialog.cpp:41: warning: 'Marble::EditGroundOverlayDialog::EditGroundOverlayDialog(Marble::GeoDataGroundOverlay*, Marble::TextureLayer*, QWidget*)' redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]
 EditGroundOverlayDialog::EditGroundOverlayDialog( GeoDataGroundOverlay *overlay, TextureLayer *textureLayer, QWidget *parent )
 ^

I get these warnings for all of the public interface functions in that file, but not for the d-pointered functions. And then the linker fails (snipped):
Code: Select all
Linking CXX shared module libPositionMarkerd.dll
[ 83%] Built target AtmospherePlugin
[ 83%] Building CXX object src/plugins/render/sun/CMakeFiles/SunPlugin.dir/SunPlugin_automoc.obj
[ 83%] Building CXX object src/plugins/render/stars/CMakeFiles/StarsPlugin.dir/StarsPlugin_automoc.obj
CMakeFiles\AnnotatePlugin.dir/objects.a(AnnotatePlugin.obj): In function `ZN6Marble14AnnotatePlugin10addOverlayEv':
E:/work/documents/trunk/lpws/app/marble/marble/src/plugins/render/annotate/AnnotatePlugin.cpp:288: undefined reference to `_imp___ZN6Marble23EditGroundOverlayDialogC1EPNS_20GeoDataGroundOverlayEPNS_12TextureLayerEP7QWidget'
CMakeFiles\AnnotatePlugin.dir/objects.a(AnnotatePlugin.obj): In function `ZN6Marble14AnnotatePlugin24displayOverlayEditDialogEPNS_20GeoDataGroundOverlayE':
E:/work/documents/trunk/lpws/app/marble/marble/src/plugins/render/annotate/AnnotatePlugin.cpp:881: undefined reference to `_imp___ZN6Marble23EditGroundOverlayDialogC1EPNS_20GeoDataGroundOverlayEPNS_12TextureLayerEP7QWidget'
CMakeFiles\AnnotatePlugin.dir/objects.a(EditGroundOverlayDialog.obj): In function `ZN6Marble23EditGroundOverlayDialogC2EPNS_20GeoDataGroundOverlayEPNS_12TextureLayerEP7QWidget':
E:/work/documents/trunk/lpws/app/marble/marble/src/plugins/render/annotate/EditGroundOverlayDialog.cpp:42: undefined reference to `_imp___ZTVN6Marble23EditGroundOverlayDialogE'
E:/work/documents/trunk/lpws/app/marble/marble/src/plugins/render/annotate/EditGroundOverlayDialog.cpp:42: undefined reference to `_imp___ZTVN6Marble23EditGroundOverlayDialogE'
CMakeFiles\AnnotatePlugin.dir/objects.a(EditGroundOverlayDialog.obj): In function `ZN6Marble23EditGroundOverlayDialogD2Ev':
E:/work/documents/trunk/lpws/app/marble/marble/src/plugins/render/annotate/EditGroundOverlayDialog.cpp:68: undefined reference to `_imp___ZTVN6Marble23EditGroundOverlayDialogE'
E:/work/documents/trunk/lpws/app/marble/marble/src/plugins/render/annotate/EditGroundOverlayDialog.cpp:68: undefined reference to `_imp___ZTVN6Marble23EditGroundOverlayDialogE'
CMakeFiles\AnnotatePlugin.dir/objects.a(EditGroundOverlayDialog.obj): In function `ZNK6Marble23EditGroundOverlayDialog10metaObjectEv':
E:/work/documents/trunk/lpws/app/marble/marble-build/src/plugins/render/annotate/EditGroundOverlayDialog.moc:105: undefined reference to `_imp___ZN6Marble23EditGroundOverlayDialog16staticMetaObjectE'
CMakeFiles\AnnotatePlugin.dir/objects.a(EditGroundOverlayDialog.obj): In function `ZN6Marble23EditGroundOverlayDialog20groundOverlayUpdatedEPNS_20GeoDataGroundOverlayE':
E:/work/documents/trunk/lpws/app/marble/marble-build/src/plugins/render/annotate/EditGroundOverlayDialog.moc:137: undefined reference to `_imp___ZN6Marble23EditGroundOverlayDialog16staticMetaObjectE'
CMakeFiles\AnnotatePlugin.dir/objects.a(EditGroundOverlayDialog.obj): In function `_static_initialization_and_destruction_0':
E:/work/documents/trunk/lpws/app/marble/marble-build/src/plugins/render/annotate/EditGroundOverlayDialog.moc:100: undefined reference to `_imp___ZN6Marble23EditGroundOverlayDialog16staticMetaObjectE'
collect2.exe: error: ld returned 1 exit status
[ 83%] Building CXX object src/plugins/render/earthquake/CMakeFiles/EarthquakePlugin.dir/EarthquakeModel.obj
mingw32-make[2]: *** [src/plugins/render/annotate/libAnnotatePlugind.dll] Error 1
src\plugins\render\annotate\CMakeFiles\AnnotatePlugin.dir\build.make:349: recipe for target 'src/plugins/render/annotate/libAnnotatePlugind.dll' failed
CMakeFiles\Makefile2:2936: recipe for target 'src/plugins/render/annotate/CMakeFiles/AnnotatePlugin.dir/all' failed
mingw32-make[1]: *** [src/plugins/render/annotate/CMakeFiles/AnnotatePlugin.dir/all] Error 2
mingw32-make[1]: *** Waiting for unfinished jobs....


Thanks for any help you can offer.
User avatar
Earthwings
KDE Developer
Posts
172
Karma
1
OS
Is that still a problem? The code in question is under heavy development currently (GSoC), and I remember some error there wrt export symbols that should be fixed by now.


Bookmarks



Who is online

Registered users: Bing [Bot], daret, Google [Bot], Sogou [Bot]