参考 https://stackoverflow.com/questions/26305097/setup-gdb-with-qtcreator
https://blog.csdn.net/lovefqing/article/details/7568533
https://blog.csdn.net/u014124220/article/details/51901638
一、前期准备
建议入门者全程使用root用户!!!
1.编辑软件源文件 /etc/apt/sources.list
解注所有以 "deb"开头的行,为了是所有的软件都能下载
2.为了解决gdal版本过低的问题,需要添加ubtuntugis支持,在终端输入以下命令即可
sudo apt-get install python-software-properties sudo add-apt-repository ppa:ubuntugis/ppa
更新源
sudo apt-get update
3.安装环境:
直接在终端输入该命令即可
apt-get install bison ca-certificates ccache cmake cmake-curses-gui dh-python doxygen expect flex gdal-bin git graphviz grass-dev libexpat1-dev libfcgi-dev libgdal-dev libgeos-dev libgsl-dev libpq-dev libproj-dev libqca-qt5-2-dev libqca-qt5-2-plugins libqt5opengl5-dev libqt5scintilla2-dev libqt5sql5-sqlite libqt5svg5-dev libqt5webkit5-dev libqt5xmlpatterns5-dev libqwt-qt5-dev libspatialindex-dev libspatialite-dev libsqlite3-dev libsqlite3-mod-spatialite libzip-dev lighttpd locales ninja-build pkg-config poppler-utils pyqt5-dev pyqt5-dev-tools pyqt5.qsci-dev python3-all-dev python3-dateutil python3-dev python3-future python3-gdal python3-httplib2 python3-jinja2 python3-markupsafe python3-mock python3-nose2 python3-owslib python3-plotly python3-psycopg2 python3-pygments python3-pyproj python3-pyqt5 python3-pyqt5.qsci python3-pyqt5.qtsql python3-pyqt5.qtsvg python3-requests python3-sip python3-sip-dev python3-six python3-termcolor python3-tz python3-yaml qt5-default qt5keychain-dev qtbase5-dev qtpositioning5-dev qttools5-dev qttools5-dev-tools spawn-fcgi txt2tags xauth xfonts-100dpi xfonts-75dpi xfonts-base xfonts-scalable xvfb
4.设置ccache加快编译时间:
cd /usr/local/bin sudo ln -s /usr/bin/ccache gcc sudo ln -s /usr/bin/ccache g++
5.创建存放qgis路径并进入该目录:
mkdir -p ${HOME}/dev/cpp cd ${HOME}/dev/cpp
二、编译过程
1.将qgis3.1.0版本移动到
${HOME}/dev/cpp目录下,开始编译配置:
cd QGIS mkdir build-master cd build-master ccmake ..
进入cmake界面后,CMAKE_BUILD_TYPE 设置成 Debug,按c进行配置检查,按g生成代码
2.make进行编译
make -jX
此时可能会出现找不到"setObsolete"的错误,这是因为该方法时qt5.9以后才出现的,而开始安装的qt版本为5.5,因此不支持该方法。进入QGIS/src/core/qgsvectorlayer.cpp将该句话注释即可。
3.pyuic-wrapper.sh: Permission denied 错误
没有使用root用户的情况下,在快编译完成时会提示错误,错误信息如下
[ 94%] Generating ui_widgetMerge.py
/bin/sh: 1: ../../../../../scripts/pyuic-wrapper.sh: Permission denied
make[2]: * [python/plugins/GdalTools/tools/ui_widgetMerge.py] Error 126
解决方法:
修改文件权限为777
chmod 777 pyuic-wrapper.sh
三、运行
1.运行可以通过以下方法进行:
1)当前目录直接运行
./output/bin/qgis
2)make安装运行
make install qgis
四、qtcreator编译
1.安装qtcreator
2.在qtcreator中打开qgis项目的CMakeLists.txt
3.进行configure和build即可