ubuntu16.04 qgis3.1.0編譯

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章