安裝編譯環境
開始之前,先選擇一個速度較快的安裝源,然後按照下面步驟進行操作
首先安裝gcc和g++編譯器環境,同時安裝ccache
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install ccache
創建鏈接到/usr/local/bin
目錄
cd /usr/local/bin
sudo ln -s /usr/bin/ccache gcc
sudo ln -s /usr/bin/ccache g++
使用git獲取源碼
首先創建源碼存放目錄
mkdir -p ${HOME}/dev/cpp
cd ${HOME}/dev/cpp
按照需求同步源碼
- Anonymous Checkout
cd ${HOME}/dev/cpp
git clone git://github.com/qgis/QGIS.git
- Developer Checkout
cd ${HOME}/dev/cpp
git clone [email protected]:qgis/QGIS.git
如果不能使用git指令,使用sudo apt-get install git
安裝git工具
編譯源碼
cd QGIS
mkdir build-master
cd build-master
ccmake ..
執行ccmake ..
以後會出現配置界面,配置相關的編譯參數和一些依賴項目錄。
進入配置界面以後,按c
鍵檢查配置信息,配置錯誤信息可以參考文章底部的 QAQ
在配置界面按 ‘c’ 檢查配置,並根據提示錯誤修改相關係統配置,直到不提示錯誤爲止,此時按下鍵盤上的 ‘g’ 生成makefile以及相關內容
下面是一些參數配置說明
- CMAKE_INSTALL_PREFIX 編譯完成後的軟件安裝目錄,如果不想安裝到默認
/usr/bin
目錄下,可以創建自己目錄mkdir -p ${HOME}/apps
,並設置該項屬性爲${HOME}/apps
- CMAKE_BUILD_TYPE 如果想要編譯完成後的代碼輸出調試信息,可以設置爲Debug,不過博主設置爲Debug以後在代碼編譯到10%左右的時候報錯
編譯並生成可執行程序
make // or make -j8
sudo make install
注: make時可使用多核同時處理,相關指令類似 make -j8
, 其中數字爲計算機處理器核數
QAQ
1.提示GDAL版本太低
CMake Warning at cmake/FindGDAL.cmake:114 (MESSAGE):
GDAL version is too old (1.10.1) to support GeoPackage. 1.11.0 or higher
is recommended.
Call Stack (most recent call first):
CMakeLists.txt:199 (FIND_PACKAGE)
解決方法:
手動安裝高版本gdal, url: http://download.osgeo.org/gdal/
此處選擇的爲1.11.0版本gdal-1.11.0.tar.gz
,程序安裝完成以後,在目錄/usr/local/bin
中
cd ~/Downloads/
tar -zxvf gdal-1.11.0.tar.gz
cd cd gdal-1.11.0/
./configure
make
sudo make install
如果make時太慢,可以使用make -j8
數字根據計算機處理器核數量進行調整
2.找不到qwtpolar目錄
錯誤提示
CMake Error: The following variables are used in this project, but they are
set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake
files:
QWTPOLAR_INCLUDE_DIR
used as include directory in directory /home/itman/dev/cpp/QGIS/src/app
used as include directory in directory /home/itman/dev/cpp/QGIS/src/app
QWTPOLAR_LIBRARY
linked by target “qgis_app” in directory /home/itman/dev/cpp/QGIS/src/app
linked by target “qgis_apppythontest” in directory
/home/itman/dev/cpp/QGIS/tests/src/app
linked by target “qgis_attributetabletest” in directory
/home/itman/dev/cpp/QGIS/tests/src/app
linked by target “qgis_fieldcalculatortest” in directory
/home/itman/dev/cpp/QGIS/tests/src/app
linked by target “qgis_maptoolidentifyaction” in directory
/home/itman/dev/cpp/QGIS/tests/src/app
linked by target “qgis_maptoolselect” in directory
/home/itman/dev/cpp/QGIS/tests/src/app
linked by target “qgis_measuretool” in directory
/home/itman/dev/cpp/QGIS/tests/src/app
linked by target “qgis_qgisappclipboard” in directory
/home/itman/dev/cpp/QGIS/tests/src/app
linked by target “qgis_vectorlayersaveasdialogtest” in directory
/home/itman/dev/cpp/QGIS/tests/src/app
解決方法:
手動安裝qwt安裝包,版本爲6.0.2,URL:https://sourceforge.net/projects/qwt/files/
手動安裝qwtpolar安裝包,版本爲1.0.1,URL:https://sourceforge.net/projects/qwtpolar/files/
下載完成以後,解壓並安裝,安裝以後的目錄在/usr/local
下面
qmake
make
sudo make install
並修改相關配置如下
QWTPOLAR_INCLUDE_DIR /usr/local/qwtpolar-1.0.0/include
QWTPOLAR_LIBRARY /usr/local/qwtpolar-1.0.0/lib/libqwtpolar.so
QWT_INCLUDE_DIR /usr/local/qwt-6.0.2/include
QWT_LIBRARY /usr/local/qwt-6.0.2/lib/libqwt.so
3.pyuic-wrapper.sh: Permission denied
在編譯到94%左右會提示錯誤,錯誤信息如下
[ 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