Ubuntu下編譯Quantum GIS(QGIS)

前言:QGIS是一個用Qt框架寫的開源桌面GIS工具。無論從學習GIS還是學習QT的角度它都是一個很好的工具。本文簡介在ubuntu環境下編譯QGIS源代碼的方法。

參考鏈接:

http://gvision.info/using-qtcreator-with-qgis/

http://hub.qgis.org/projects/quantum-gis/repository/revisions/master/entry/INSTALL


環境:Ubuntu 11.10 


一、依賴的工具集:

- CMake >= 2.6.2

- Flex

- Bison >= 2.4


二、依賴庫:

- Qt >= 4.4.0

- Proj >= 4.4.x

- GEOS >= 3.0

- Sqlite3 >= 3.0.0

- GDAL/ORG >= 1.4.x

- Qwt >= 5.0


可選依賴庫:

- For GRASS plugin - GRASS >= 6.0.0 (libraries compiled with exceptions support on Linux 32bit)

- for georeferencer - GSL >= 1.8

- for postgis support and SPIT plugin - PostgreSQL >= 8.0.x

- for gps plugin - expat >= 1.95 and gpsbabel

- for mapserver export and PyQGIS - Python >= 2.3 (2.5+ preferred)

- for python support - SIP >= 4.8, PyQt >= must match Qt version

- for qgis mapserver - FastCGI


三、編譯QGIS所需的依賴庫在Ubuntu的 "universe"組件裏,這個組件默認是關閉的,爲了編譯QGIS必須激活:

1、編輯 /etc/apt/sources.list 文件

2、打開所有以 "deb"開頭的行

3、更新sources庫, 在命令行裏輸入:sudo apt-get update


四、安裝第一部分提到的依賴庫

注意:這裏有不同的發行版本, 安裝命令也會相應有些差別, 根據自己的需要選擇 lucid, maverick, natty, oneiric, precise, sid, squeeze, 或是wheezy.

|| Distribution | install command for packages |
	
  | lucid | ``apt-get install bison cmake doxygen flex git-core graphviz grass-dev libexpat1-dev libfcgi-dev libgdal1-dev libgeos-dev libgsl0-dev libpq-dev libproj-dev libqt4-dev libqwt5-qt4-dev libspatialindex-dev libspatialite-dev libsqlite3-dev pkg-config pyqt4-dev-tools python python-dev python-qt4 python-qt4-dev python-sip python-sip-dev txt2tags xauth xfonts-base xvfb`` |
	
  | maverick | ``apt-get install bison cmake doxygen flex git graphviz grass-dev libexpat1-dev libfcgi-dev libgdal1-dev libgeos-dev libgsl0-dev libpq-dev libproj-dev libqt4-dev libqtwebkit-dev libqwt5-qt4-dev libspatialindex-dev libspatialite-dev libsqlite3-dev pkg-config pyqt4-dev-tools python python-dev python-qt4 python-qt4-dev python-sip python-sip-dev txt2tags xauth xfonts-base xvfb`` |
	
  | natty | ``apt-get install bison cmake doxygen flex git graphviz grass-dev libexpat1-dev libfcgi-dev libgdal1-dev libgeos-dev libgsl0-dev libpq-dev libproj-dev libqt4-dev libqtwebkit-dev libqwt5-qt4-dev libspatialindex-dev libspatialite-dev libsqlite3-dev pkg-config pyqt4-dev-tools python python-dev python-qt4 python-qt4-dev python-sip python-sip-dev txt2tags xauth xfonts-base xvfb`` |
	
  | oneiric | ``apt-get install bison cmake doxygen flex git graphviz grass-dev libexpat1-dev libfcgi-dev libgdal1-dev libgeos-dev libgsl0-dev libpq-dev libproj-dev libqt4-dev libqtwebkit-dev libqwt5-qt4-dev libspatialindex-dev libspatialite-dev libsqlite3-dev pkg-config pyqt4-dev-tools python python-dev python-qt4 python-qt4-dev python-sip python-sip-dev txt2tags xauth xfonts-base xvfb`` |
	
  | precise | ``apt-get install bison cmake doxygen flex git graphviz grass-dev libexpat1-dev libfcgi-dev libgdal1-dev libgeos-dev libgsl0-dev libopenscenegraph-dev libosgearth-dev libpq-dev libproj-dev libqt4-dev libqt4-opengl-dev libqtwebkit-dev libqwt5-qt4-dev libspatialindex-dev libspatialite-dev libsqlite3-dev pkg-config pyqt4-dev-tools python python-dev python-qt4 python-qt4-dev python-sip python-sip-dev txt2tags xauth xfonts-base xvfb`` |
	
  | sid | ``apt-get install bison cmake doxygen flex git graphviz grass-dev libexpat1-dev libfcgi-dev libgdal1-dev libgeos-dev libgsl0-dev libopenscenegraph-dev libosgearth-dev libpq-dev libproj-dev libqt4-dev libqt4-opengl-dev libqtwebkit-dev libqwt-dev libspatialindex-dev libspatialite-dev libsqlite3-dev pkg-config pyqt4-dev-tools python python-dev python-qt4 python-qt4-dev python-sip python-sip-dev txt2tags xauth xfonts-base xvfb`` |
	
  | squeeze | ``apt-get install bison cmake doxygen flex git graphviz grass-dev libexpat1-dev libfcgi-dev libgdal1-dev libgeos-dev libgsl0-dev libpq-dev libproj-dev libqt4-dev libqwt5-qt4-dev libspatialindex-dev libspatialite-dev libsqlite3-dev pkg-config pyqt4-dev-tools python python-dev python-qt4 python-qt4-dev python-sip python-sip-dev txt2tags xauth xfonts-base xvfb`` |
	
  | wheezy | ``apt-get install bison cmake doxygen flex git graphviz grass-dev libexpat1-dev libfcgi-dev libgdal1-dev libgeos-dev libgsl0-dev libopenscenegraph-dev libosgearth-dev libpq-dev libproj-dev libqt4-dev libqt4-opengl-dev libqtwebkit-dev libqwt-dev libspatialindex-dev libspatialite-dev libsqlite3-dev pkg-config pyqt4-dev-tools python python-dev python-qt4 python-qt4-dev python-sip python-sip-dev txt2tags xauth xfonts-base xvfb`` |

五、git

git是一個類似與SVN的版本控制工具, qgis的源代碼是用git管理的, 你可以在ubuntu software center 或是用命令行安裝git工具。

在 home文件夾下面創建dev/cpp文件夾, 將QGIS的源代碼放到這個目錄下:

cd ${home}/dev/cpp

git clone git://github.com/qgis/Quantum-GIS.git

推薦的一種得到源代碼的途徑是直接到QGIS的官方網站下載,這裏建議下載 release的穩定版本(筆者經驗,master版本有時候編譯會出問題,當前是版本是1.7.4)。因爲用git從sourceforge上面checkout出來的是不穩定的版本,編譯過程可能出現問題。


六、編譯源代碼(可以選擇兩種編譯方式,如果你的目的還包括改寫qgis源代碼,可以用第二種QtCreator編譯)

(一)命令行編譯

1、創建目錄${home}/apps

mkdir -p ${HOME}/apps

2、創建一個build目錄,並且運行 ccmake
cd Quantum-GIS
mkdir build-master
cd build-master
ccmake ..
當運行ccmake的時候(..是必須的),會出現一個配置菜單,修改CMAKE_INSTALL_PREFIX爲 ${home}/apps.按c開始配置,有時候需要按幾次c纔會出現g,讓你生成make file.

3、build
命令行輸入 
make
make install

4、運行

$home/apps/bin/qgis

如果編譯成功,QGIS就會成功運行。

(二)QtCreator編譯

1、重新解壓出來一份源代碼(不要用用過第一種方法編譯的那套代碼)

2、打開QtCreator

File->Open File or Project

找到源代碼的根目錄,裏面應該有CMakeLists.txt.打開。會出現下圖選擇build的目錄


按Next出現下圖設置cmake參數 -DCMAKE_BUILD_TYPE=Debug


點擊Run CMake會自動生成相應的makefiles.然後點擊Finish.

3、設置build環境

點擊Projects->Build Settings->Add Build Step->Custom Process Step,設置如下圖:


默認情況下,QGIS會安裝在/usr/local, 此時需要設置你對該目錄具有讀寫權限。


4、設置運行環境,Run Settings(在Build Settings旁邊)。


覆蓋默認的可執行文件,點擊Add,選擇Custom Executable, 

Executable: /usr/local/bin/qgis
Arguments :
Working directory: $HOME
Run in terminal: [no]
Debugger: C++ [yes]
          Qml [no]
點擊Rename,設置可執行文件的名字爲Installed QGIS或是其他你喜歡的名字。

設置如下圖:



5、運行和調試, 設置斷點後,點擊Start Debugging按鈕,即可進入調試模式。


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