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

Mikhail Katychev mkatych at gmail.com
Wed Mar 7 07:52:27 PST 2018


Dennis thanks for the reply, that issue was resolved by doing as you
suggested.
I however am completely unable to specify my SIP directory. There doesn't
seem to be any *cmake* parameters that allow me to point my PyQt5 SIP
directory.

I get
sip: Unable to find file "QtXml/QtXmlmod.sip"
make[2]: *** [python/core/sip_corepart0.cpp] Error 1
make[2]: *** Deleting file `python/core/sip_corepart0.cpp'
make[1]: *** [python/CMakeFiles/python_module_qgis__core.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 30%] Built target qgis_analysis
[ 30%] Built target qgis_vectorlayercachetest_autogen
[ 53%] Built target qgis_gui
make: *** [all] Error

When my Qt5Xml_DIR *ccmake* var is located in:
/usr/local/opt/qt/lib/cmake/Qt5Xml

And my actualy sip files are located in:
/usr/local/Cellar/pyqt/5.10/share/sip/Qt5

Running *FindPyQt5.py* gives me this output:
pyqt_version:050a01
pyqt_version_num:330241
pyqt_version_str:5.10.1
pyqt_version_tag:
pyqt_mod_dir:/usr/local/Cellar/python/3.6.4_3/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/PyQt5
pyqt_sip_dir:/usr/local/share/sip
pyqt_sip_flags:-t WS_MACX -t Qt_5_10_1
pyqt_bin_dir:/usr/local/Cellar/python/3.6.4_3/Frameworks/Python.framework/Versions/3.6/bin

The thing to point out is that I don't have a directory called
*/usr/local/share/sip*, only a Qt4 one: */usr/local/share/sip-qt4*. Should
I be creating a symlink pointing to that directory?

I have also tried this solution to no avail:
https://issues.qgis.org/issues/16034

Any suggestions on how to properly point to my PyQt5 directory would be a
huge help.

Thanks,
Mikhail



On Wed, Mar 7, 2018 at 5:52 AM, Denis Rouzaud <denis.rouzaud at gmail.com>
wrote:

> Hi,
>
> You're using the system spatialite while you should use the brew one.
>
> After is my cmake output.
>
> Good luck!
>
> Denis
>
> -- QGIS version: 3.1.0 Master (30100)
>
> -- Could not find GRASS 7
>
> -- Found Proj: /usr/local/opt/proj/lib/libproj.dylib
>
> -- Found GEOS: /usr/local/Cellar/geos/3.6.2/lib/libgeos_c.dylib (3.6.2)
>
> -- Found GDAL: /usr/local/opt/gdal2/lib/libgdal.dylib (2.2.3)
>
> -- Found Expat: /usr/local/opt/expat/lib/libexpat.dylib
>
> -- Found Spatialindex: /usr/local/opt/spatialindex/
> lib/libspatialindex.dylib
>
> -- Found Qwt: /usr/local/opt/qwt/lib/qwt.framework (6.1.3)
>
> -- Found libzip: /usr/local/opt/libzip/lib/libzip.dylib
>
> -- Found Sqlite3: /usr/local/opt/sqlite/lib/libsqlite3.dylib
>
> -- Found PostgreSQL: /usr/local/lib/libpq.dylib
>
> -- Found SpatiaLite: /usr/local/opt/libspatialite/lib/libspatialite.dylib
>
> -- Qt WebKit support enabled
>
> -- Found Qt version: 5.10.1
>
> -- Found QScintilla2: /usr/local/opt/qscintilla2/lib/libqscintilla2_qt5.dylib
> (2.10.2)
>
> -- Found QtKeychain: /usr/local/lib/libqt5keychain.dylib
>
> -- Found QCA: /usr/local/opt/qca/lib/qca-qt5.framework (2.1.3)
>
> -- QtCore/QCA include/lib variables missing or CMake is cross-compiling,
>
> -- skipping QCA OpenSSL plugin C++ check
>
> -- Pedantic compiler settings enabled
>
> -- Debug output enabled
>
> -- Found Python executable: /usr/local/bin/python3
>
> -- Found Python version: 3.6.4
>
> -- Found Python library: /usr/local/Frameworks/Python.
> framework/Versions/3.6/Python
>
> -- Found Python site-packages: /usr/local/lib/python3.6/site-packages
>
> -- Found PyQt5 version: 5.10
>
> -- Found SIP version: 4.19.7
>
> -- Found QScintilla2 PyQt module: 2.10.2
>
> -- txt2tags not found - disabled
>
> -- Found GSL: -L/usr/local/Cellar/gsl/2.4/lib -lgsl -lgslcblas
>
> -- Ctest Binary Directory set to: /Users/denis/opt/qgis/build-
> QGIS-Qt5/output/bin
>
> -- Configuring done
>
> -- Generating done
>
> -- Build files have been written to: /Users/denis/opt/qgis/build-QGIS-Qt5
>
>
>
>
> Le lun. 5 mars 2018 à 16:39, Mikhail Katychev <mkatych at gmail.com> a
> écrit :
>
>> Perhaps this is more relevant to the dev mailing list,
>>
>> 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 \
>> -DGRASS_PREFIX7=/usr/local/Cellar/grass7/7.2.2/grass-base \
>> -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
>>
>> Here is my cmake output for the previous command:
>>
>> -- QGIS version: 3.1.0 Master (30100)
>> -- Found GRASS 7: /usr/local/Cellar/grass7/7.2.2/grass-base (7.2.2, off_t size = )
>> -- Found Proj: /Library/Frameworks/PROJ.framework
>> -- Found GEOS: /Library/Frameworks/GEOS.framework (3.6.1)
>> -- Found GDAL: /Library/Frameworks/GDAL.framework (2.1.3)
>> -- Found Expat: /usr/lib/libexpat.dylib
>> -- Found Spatialindex: /usr/local/lib/libspatialindex.dylib
>> -- Found Qwt: /usr/local/lib/qwt.framework (6.1.3)
>> -- Found libzip: /usr/local/lib/libzip.dylib
>> -- Found Sqlite3: /Library/Frameworks/SQLite3.framework
>> -- Found PostgreSQL: /usr/local/lib/libpq.dylib
>> -- Found SpatiaLite: /Library/Frameworks/SQLite3.framework
>> -- Qt WebKit support DISABLED.
>> -- Found Qt version: 5.10.1
>> -- Found QScintilla2: /usr/local/Cellar/qscintilla2/2.10.3/lib/libqscintilla2_qt5.13.1.1.dylib (2.10.3)
>> -- Found QtKeychain: /usr/local/lib/libqt5keychain.dylib
>> -- Found QCA: /usr/local/lib/qca-qt5.framework (2.1.3)
>> -- QtCore/QCA include/lib variables missing or CMake is cross-compiling,
>> --   skipping QCA OpenSSL plugin C++ check
>> -- Pedantic compiler settings enabled
>> -- Found Python executable: /usr/local/bin/python3
>> -- Found Python version: 3.6.4
>> -- Found Python library: /usr/local/Frameworks/Python.framework/Versions/3.6/Python
>> -- Found Python site-packages: /usr/local/lib/python3.6/site-packages
>> -- Found PyQt5 version: 5.10.1
>> -- Found SIP version: 4.19.8
>> -- Found QScintilla2 PyQt module: 2.10.3
>> -- txt2tags not found - disabled
>> -- Found GSL: -L/usr/local/Cellar/gsl/2.4/lib -lgsl -lgslcblas
>> -- Ctest Binary Directory set to: /Users/user/Downloads/QGIS-master/output/bin
>> -- Configuring done
>> -- Generating done
>> -- Build files have been written to: /Users/user/Downloads/QGIS-master
>>
>> And finally, 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
>>
>> _______________________________________________
>> QGIS-Developer mailing list
>> QGIS-Developer at lists.osgeo.org
>> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20180307/a013ee91/attachment-0001.html>


More information about the QGIS-Developer mailing list