[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