參考 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即可