QGISソースコードのコンパイル



Qgis Source Code Compilation



前書き:qgisソースコードをコンパイルする過程で多くの回り道をし、多くの人がメソッドを書いているのを見てきましたが、他の人とは異なる多くの問題に遭遇しました。コンパイルの最初から最後のコンパイルまで、10日以上かかり、ほとんどの場合、1か所にとどまって続行できませんでした。しかし、qgisをコンパイルするプロセス全体は難しくありません。辛抱強く、繰り返しコンパイルし、プロンプトに従ってエラーを見つけ、それらを1つずつ解決する必要があります。他の人が将来qgisソースコードをコンパイルするときに迂回を避けるために、ここで私はあなたにqgisコンパイルの詳細なプロセスを紹介します、欠点について教えてください。

まず第一に、これは私がqgisをコンパイルするときに参照するブログです:



公式qgisドキュメント:https://htmlpreview.github.io/?https://raw.github.com/qgis/QGIS/master/doc/INSTALL.html#toc13

Li Minluブログ:http://blog.csdn.net/liminlu0314/article/details/17400075



Baiduの経験:http://jingyan.baidu.com/article/f25ef2546949e5482c1b82c4.html

準備オーケー:

ソースのダウンロード:



qgis2.14.16バージョンのソースコード:http://download.csdn.net/detail/yuanhengzhw/9907352

qgis2.0バージョンのソースコード: https://github.com/qgis/QGIS/tree/release-2_0

txt2tags.py:http://download.csdn.net/detail/yuanhengzhw/9907356

txt2tags.pyは、以下のスクリーンショットに示されているパスに配置されます

次のツールキットをダウンロードします。

ツール ウェブサイト
CMake https://cmake.org/files/v3.7/cmake-3.7.2-win64-x64.msi
GNU flex、GNU bison、GIT http://cygwin.com/setup-x86.exe (32ビット)または http://cygwin.com/setup-x86_64.exe (64ビット)
OSGeo4W http://download.osgeo.org/osgeo4w/osgeo4w-setup-x86.exe (32ビット)または http://download.osgeo.org/osgeo4w/osgeo4w-setup-x86_64.exe (64ビット)
忍者 https://github.com/ninja-build/ninja/releases/download/v1.7.2/ninja-win.zip
32ビットと64ビットの違いに注意してください。コンパイル時にすべてが32ビットまたはすべて64ビットのいずれかです。コンパイルするときは64ビットを使用します

依存ライブラリをインストールするときは、パスにスペースと中国語を含めないでください。cmakeとqtは中国語にあまり馴染みがないためです。いつの日か、私たちの中国語が世界のどの言語にも取って代わることができることを願っています。これは私の願いの一つです、ハハハハ

からcygwin(GNU flex、GNU bison、GIT in Tool)は、次の依存ライブラリをインストールします。

  • バイソン
  • フレックス
  • 行く
インストール手順は次のとおりです。ダウンロードしたsetupt-x86.exeまたはsetup-x86_64.exe実行可能プログラムを起動し、[インターネットからインストール]を選択して、次のインターフェイスが表示されるまで次の手順に進みます。


検索の右側のボックスに上記の依存ライブラリファイルを入力し、[デフォルト]を[インストール]に変更し、クリックして[デフォルト]と[インストール]を切り替えます。上記のいくつかの依存ライブラリを選択したら、[次へ]をクリックしてインストールを開始します。インストール済みインストールするライブラリがわからない場合は、検索対象のすべてのライブラリをインストールしてください。上記の3つのツールをインストールするときは、必ずスペースや中国語のないパスにインストールし、インストール後に環境変数にbinディレクトリを追加してください。そうしないと、後で問題が発生します。しかし、それは問題ではありません、後で解決策があります。 Cmakeをインストールするには、Cmakeインストールパスの下のbinディレクトリも環境変数に追加する必要があります。 cmakeのインストール時に環境変数を自動的に追加することを選択できます。



OSGeo4Wから次の依存ライブラリをインストールします。手順は上記と同様ですが、OSGeo4Wの起動時に、必ず「高度なインストールを選択」を選択するオプションがあります。

  • 海外駐在員
  • fcgi
  • gdal
  • gsl-devel
  • iconv
  • libspatialindex-開発
  • pyqt5
  • python3-devel
  • python3-qscintilla
  • python3-nose2
  • python3-future
  • python3-pyyaml
  • python3-モック
  • qca-qt5-devel
  • qca-qt5-libs
  • qscintilla-qt5
  • qt5-devel
  • qt5-libs-デバッグ
  • qtwebkit-qt5-devel
  • qtwebkit-qt5-libs-debug
  • qwt-devel-qt5
  • sip-qt5
  • Spatialite
Qtをインストールする必要もありますが、上記はOSGeo4Wがインストールされているため、この手順を個別にインストールする必要はありません。

これまでのところ、qgisコンパイルのための環境が構成されています。次のステップは、CMakeを使用してqgisソースファイルをコンパイルし、VSプロジェクトファイルを生成することです。コンパイルされたQgisプロジェクトを実行するにはVS2010を使用することをお勧めします。 VS2010よりも新しいバージョンでVSを使用すると、問題が発生する可能性があります。問題の種類


CMake構成:

qgisソースコードと同じレベルのディレクトリに新しいビルドフォルダ(任意の名前)を作成し、cmakeによって生成されたvsプロジェクトをこのディレクトリに置き、Cmake guiを開き、Cmakeソースコードパスとビルドプロジェクトパスを次のようにインポートします。下の図に示すように、比較してください自分のパスを入力するだけです


次に、[構成]ボタンをクリックして、生成プロジェクト環境を選択します。次の図に示すように、VS2010 64ビットを使用しています。自分の状況に応じて、主に32ビットと64ビットを区別するために選択します。


構成が完了したら、[完了]ボタンをクリックします。しばらくすると次のプロンプトが表示されます。慌てる必要はありません。これは正常であり、背景が赤の構成アイテムが多数あります。これらを変更する必要があります。


ここでは最も基本的なQGIS実行可能プログラムのみがコンパイルされているため、他のすべてのプラグインはコンパイルされていません。そのため、次の図に示すように、グループ内のWITHを変更します。プラグインをコンパイルする必要がある場合は、それをチェックするだけで、後でプラグインが依存するサードパーティライブラリを設定する必要があります。


次に、[構成]ボタンをクリックすると、下部のウィンドウで、設定する必要のあるライブラリを赤いフォントで確認できます。たとえば、最初にFlexライブラリのパスを設定するように求められます。

Flexパスを設定した後、[構成]をクリックすると、Bisonが見つからないというプロンプトが表示されます。順番に設定した後、この手順に従って、設定が必要なすべてのサードパーティライブラリを設定します。

次に、PROJおよびGEOSライブラリを設定するように求められます


他のライブラリパスについてはあまり説明しません。参照用に構成したライブラリディレクトリを提供します。



SETUPAPI_EXECUTEABLEパスがシステムディスクの下で選択されていることに注意してくださいSetupAPI.Libライブラリ、私のパスは次のとおりです。ご自身で対応してください

C:/ Program Files(x86)/ Microsoft SDKs / Windows / v7.1A / Lib / x64 / SetupAPI.Lib

これらの依存ライブラリを設定した後、をクリックします[構成]ボタン。エラーがない場合は、次の図に示すように、[構成完了]と入力されます。


構成完了が表示されたら、cmake構成に問題がないことを証明し、[生成]ボタンをクリックしてVSプロジェクトを生成します。プロジェクトが生成されると、「生成が完了しました」というプロンプトが表示され、ビルドディレクトリが開きます。この時点で、以下に示すように、プロジェクト全体が生成されています。


ここにあります、qgisソースコードは実行可能なVSプログラムにコンパイルされ、次にVS2010を使用してqgisをコンパイルしてqgisを実行させる方法


VS2010を使用してqgisソースコードをコンパイルします:

コンパイルされたプロジェクトを開くためにVS2010を使用してください。事業、以下に示すように、ロード後に198個のアイテムがあります


ソリューションを右クリックし、一般プロパティでスタートアッププロジェクトを選択し、単一のスタートアッププロジェクトを選択し、単一のスタートアッププロジェクトでqgisを選択し、qgisプロジェクトを開始すると、qgisに関連するプロジェクトがデフォルトで開始されます


選択するRelWithDebInfoコンパイル方法

プロジェクトを開始すると、プロジェクトを初めてコンパイルするのに長い時間がかかります。当然のことながら、これまで何度もコンパイルしてミスを繰り返したため、コンパイルは1回成功する可能性がありますが、今の手順では表示されないはずです。問題は何ですか。問題がある場合は、構成した依存関係ライブラリディレクトリが間違っていることを確認し、正しいライブラリパスを指定して、エラーを具体的にコンパイルしたプロジェクトを見つけ、ソリューションエクスプローラーでプロジェクトを見つけ、プロジェクトを右クリックして、[属性]を選択します。次の操作は次のとおりです。下の図に示されているように、記事に記載されているLiDirectoryのブログを参照することもできます。


上記の手順を実行した後、大きな問題はありません。一部の不要なプロジェクトはコンパイルおよび渡されない可能性があり、次のエラーメッセージが表示されます。


しかし、これは無害です。対応するプロジェクトを直接アンインストールして、再度コンパイルするだけです。特定のアンインストール方法を実行し、間違ったプロジェクトを見つけて、右クリックし、プロジェクトをアンインストールします。コンパイルが完了すると、qgis実行プログラムが開始されます。次のファイルがBuildvs output bin RelWithDebInfoディレクトリに表示されます。


以下に示すように、qgis.exeをダブルクリックしてqgisを再生しますが、多くのアイコンが欠落していることがわかります。これは、UIのqtが対応する画像リソースを見つけることができないためです。これは、画像の接尾辞の問題です。 Qtはpng画像を見つけましたが、svgアイコンが見つかりません。OSgeo4W64のqtインストールディレクトリにあるimageformatsフォルダーをコピーするだけで、問題はありません。パスは次のとおりです。C: OSGeo4W64 apps Qt4 plugins imageformats。このディレクトリにはqsvg4.dllが必要です。アイコンが表示されないという問題を解決できるのは、このdllライブラリだけです。


qgisにアイコンがない具体的な理由はこの記事を参照することができます:http://blog.csdn.net/deirjie/article/details/50446033


アイコン付きの変更されたqgisインターフェース


私はこれを終えました、ローカライズ方法は設定メニューの下のオプションを選択することです、による下図のように操作してください。設定後、qgisChineseを再起動して完了します


この時点で、qgisコンパイルの作業は完了です。

2017年7月22日の元恒武漢、湖北