[Qgis-user] Encountering undeclared identifiers and classes during QGIS 3 build on macOS

Mikhail Katychev mkatych at gmail.com
Mon Mar 5 09:57:13 PST 2018


Hello there,

Has anyone had any luck building QGIS 3 on macOS? I keep getting unknown
class names and identifiers that are very close to the expected ones such
as:

'IDataStream'; did you mean 'QDataStream'?

and

error: no type named 'Region' in namespace 'SpatialIndex'; did you
mean 'QRegion'?

as well as an indication that Rtree is unable to be found even when I
did a pip install rtree:
/Users/user/Downloads/QGIS-master/src/core/qgspointlocator.cpp:78:25:
error: use of undeclared identifier 'RTree'

Here is my cmake command arguments:

cmake ../CMakeLists.txt \
-DBISON_EXECUTABLE=/usr/local/opt/bison/bin/bison \
-DWITH_QTWEBKIT=false \
-DCMAKE_PREFIX_PATH=/usr/local/Cellar/qt/5.10.1 \
-DQSCINTILLA_INCLUDE_DIR=/usr/local/Cellar/qscintilla2/2.10.3/include/ \
-DQSCI_SIP_DIR=/usr/local/Cellar/qscintilla2/2.10.3/share/sip/Qsci \
-DQSCINTILLA_LIBRARY=/usr/local/Cellar/qscintilla2/2.10.3/lib/libqscintilla2_qt5.13.1.1.dylib

And here is my fatal error output log mostly referencing qgspointlocator.cpp:


/Users/user/Downloads/QGIS-master/src/core/qgspointlocator.cpp:33:8: error:
> no type named 'Point' in namespace 'SpatialIndex'; did you mean 'QPoint'?
> static SpatialIndex::Point point2point( const QgsPointXY &point )
>        ^~~~~~~~~~~~~~~~~~~
>        QPoint
> /Users/user/Downloads/QGIS-master/src/core/qgsmaptopixel.h:28:7: note:
> 'QPoint' declared here
> class QPoint;
>       ^
> /Users/user/Downloads/QGIS-master/src/core/qgspointlocator.cpp:36:10:
> error: use of undeclared identifier 'Point'
>   return Point( plow, 2 );
>          ^
> /Users/user/Downloads/QGIS-master/src/core/qgspointlocator.cpp:40:8:
> error: no type named 'Region' in namespace 'SpatialIndex'; did you mean
> 'QRegion'?
> static SpatialIndex::Region rect2region( const QgsRectangle &rect )
>        ^~~~~~~~~~~~~~~~~~~~
>        QRegion
> /usr/local/Cellar/qt/5.10.1/lib/QtGui.framework/Headers/qpainterpath.h:61:7:
> note: 'QRegion' declared here
> class QRegion;
>       ^
> /Users/user/Downloads/QGIS-master/src/core/qgspointlocator.cpp:44:24:
> error: no member named 'Region' in namespace 'SpatialIndex'
>   return SpatialIndex::Region( pLow, pHigh, 2 );
>          ~~~~~~~~~~~~~~^
> /Users/user/Downloads/QGIS-master/src/core/qgspointlocator.cpp:62:39:
> error: unknown class name 'IDataStream'; did you mean 'QDataStream'?
> class QgsPointLocator_Stream : public IDataStream
>                                       ^~~~~~~~~~~
>                                       QDataStream
> /usr/local/Cellar/qt/5.10.1/lib/QtCore.framework/Headers/qurl.h:61:7:
> note: 'QDataStream' declared here
> class QDataStream;
>       ^
> /Users/user/Downloads/QGIS-master/src/core/qgspointlocator.cpp:65:56:
> error: use of undeclared identifier 'RTree'
>     explicit QgsPointLocator_Stream( const QLinkedList<RTree::Data *>
> &dataList )
>                                                        ^
> /Users/user/Downloads/QGIS-master/src/core/qgspointlocator.cpp:65:69:
> error: expected expression
>     explicit QgsPointLocator_Stream( const QLinkedList<RTree::Data *>
> &dataList )
>                                                                     ^
> /Users/user/Downloads/QGIS-master/src/core/qgspointlocator.cpp:70:5:
> error: unknown type name 'IData'
>     IData *getNext() override { return mIt.next(); }
>     ^
> /Users/user/Downloads/QGIS-master/src/core/qgspointlocator.cpp:71:20:
> error: only virtual member functions can be marked 'override'
>     bool hasNext() override { return mIt.hasNext(); }
>                    ^~~~~~~~~
> /Users/user/Downloads/QGIS-master/src/core/qgspointlocator.cpp:73:21:
> error: only virtual member functions can be marked 'override'
>     uint32_t size() override { Q_ASSERT( false && "not available" );
> return 0; }
>                     ^~~~~~~~~
> /Users/user/Downloads/QGIS-master/src/core/qgspointlocator.cpp:74:19:
> error: only virtual member functions can be marked 'override'
>     void rewind() override { Q_ASSERT( false && "not available" ); }
>                   ^~~~~~~~~
> /Users/user/Downloads/QGIS-master/src/core/qgspointlocator.cpp:77:17:
> error: use of undeclared identifier 'RTree'
>     QLinkedList<RTree::Data *> mDataList;
>                 ^
> /Users/user/Downloads/QGIS-master/src/core/qgspointlocator.cpp:77:30:
> error: expected expression
>     QLinkedList<RTree::Data *> mDataList;
>                              ^
> /Users/user/Downloads/QGIS-master/src/core/qgspointlocator.cpp:78:25:
> error: use of undeclared identifier 'RTree'
>     QLinkedListIterator<RTree::Data *> mIt;
>                         ^
> /Users/user/Downloads/QGIS-master/src/core/qgspointlocator.cpp:78:38:
> error: expected expression
>     QLinkedListIterator<RTree::Data *> mIt;
>                                      ^
> /Users/user/Downloads/QGIS-master/src/core/qgspointlocator.cpp:90:53:
> error: expected class name
> class QgsPointLocator_VisitorNearestVertex : public IVisitor
>                                                     ^
> /Users/user/Downloads/QGIS-master/src/core/qgspointlocator.cpp:100:27:
> error: unknown type name 'INode'
>     void visitNode( const INode &n ) override { Q_UNUSED( n ); }
>                           ^
> /Users/user/Downloads/QGIS-master/src/core/qgspointlocator.cpp:101:39:
> error: unknown type name 'IData'
>     void visitData( std::vector<const IData *> &v ) override { Q_UNUSED( v
> ); }
>                                       ^
> /Users/user/Downloads/QGIS-master/src/core/qgspointlocator.cpp:103:27:
> error: unknown type name 'IData'
>     void visitData( const IData &d ) override
>
                          ^

Any help is appreciated.

Thanks,
MK
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20180305/a7e74ed8/attachment.html>


More information about the Qgis-user mailing list