[Qgis-developer] Building QGIS2.99 cloned from GitHub on Ubuntu 16.10 (yakkety) 64-bit Python
gordon at shieldaig.com
gordon at shieldaig.com
Thu Feb 9 18:26:47 PST 2017
This is what I changed to get what I had to build on Ubuntu 16.10. I am
using the free open source version of Qt directly from their website.
1. I used the Qt Maintenance tool to install a local copy of Qt 5.7.1,
to be consistent with `pyqt5-dev`, `pyqt5-dev-tools` and some other
python packages, and modified `ccmake ..` to use it except for Qt5WebKit
and Qt5WebKitWidgets which remained as configured. That means in the
ccmake I changed the path from Qt5Concurrent_DIR to Qt5Xml_DIR to
`/home/<my username>/Qt/5.7/gcc_64/lib/cmake/...`
2. I modified `qendian.h` in the Qt 5.7 folder `include/QtCore` I made
beginning section of the Qt 5.7 file the same as Qt 5.6 for
QT_HAS_BUILTIN ie.
`#ifdef __has_builtin
# define QT_HAS_BUILTIN(x) __has_builtin(x)
#else
# define QT_HAS_BUILTIN(x) 0
#endif`
3. In folder QGIS/src/core/qgis.h I added the line `#include
<QIODevice>` before all other includes. This eliminate a problem with a
`isTransactionStarted` missing member of IODevice Class. I did this
because the header said must be included before any `open`.
4. In folder QGIS/src/gui/qgisgui.h I added the line `#include
<QIODevice>` before all other includes. This eliminate a problem with a
`isTransactionStarted` missing member of IODevice Class.
5. In folder QGIS/src/gui/qgshelp.h I added the line `#include
<QIODevice>` before all other includes. This eliminate a problem with a
`isTransactionStarted` missing member of IODevice Class.
Hopefully these changes will point the development team or someone to
problems building on Ubuntu 16.10 64-bit - I did a full upgraded to it
from 16.04 just a few days ago. I did install `geos` 3.6 from source
but that probably made little difference but a fix of that issue is now
on Github.
At [ 89%] Generating ui_DlgCreateConstraint.py
`Segmentation fault (core dumped)
python/plugins/db_manager/CMakeFiles/zzz-db_manager-15-depend.dir/build.make:72:
recipe for target 'python/plugins/db_manager/ui_DlgAddGeometryColumn.py'
failed
make[2]: *** [python/plugins/db_manager/ui_DlgAddGeometryColumn.py]
Error 139
make[2]: *** Waiting for unfinished jobs....
Segmentation fault (core dumped)
python/plugins/db_manager/CMakeFiles/zzz-db_manager-15-depend.dir/build.make:76:
recipe for target 'python/plugins/db_manager/ui_DlgCreateConstraint.py'
failed
make[2]: *** [python/plugins/db_manager/ui_DlgCreateConstraint.py] Error
139
CMakeFiles/Makefile2:5428: recipe for target
'python/plugins/db_manager/CMakeFiles/zzz-db_manager-15-depend.dir/all'
failed
make[1]: ***
[python/plugins/db_manager/CMakeFiles/zzz-db_manager-15-depend.dir/all]
Error 2
make[1]: *** Waiting for unfinished jobs....`
The build continued until:
`[ 94%] Linking CXX shared library ../../output/lib/libqgis_app.so
[ 94%] Built target qgis_app`
There may have been an easier way but I didn't know what it was. I am
not that familiar with Qt. I haven't resolve the db_manager issue.
Anyone know how to fix that?
Gordon
On 2017-02-09 03:50, Jürgen E. Fischer wrote:
> Hi Gordon,
>
> On Wed, 08. Feb 2017 at 18:01:52 -0500, gordon at shieldaig.com wrote:
>> This is what I discovered.
>>
>> On Ubuntu 16.10 the following packages: `pyqt5-dev pyqt5-dev-tools
>> pyqt5.qsci-dev` seem to be the Qt 5.7 version.
>> I removed them and reinstalled to confirm. Then I deleted the build
>> folder and started over.
>
> As a shortcut you can also build debian packages (see INSTALL). That
> will take
> care of the dependencies (ie. complain about what's missing) and leave
> a build
> directory in debian/build. You could also interrupt the build once
> it's
> setup.
>
>
> Jürgen
>
> _______________________________________________
> 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
More information about the Qgis-developer
mailing list