WindowsでデバッグQgisをコンパイルする方法





職場では、QGISコアでどのようなアクションが起こっているのかを知る必要があるという事実に直面しなければなりませんでした。 QGIS(Quantum GIS)-無料のクロスプラットフォームの地理情報システム。 システム自体は、Qtツールキットを使用して開発されています。 それを通して、私はプロジェクトをまとめることにしました。 これを行うために、公式サイトからqgisソースをダウンロードし、ビルドを開始しました。 サイト自体には、Qt Creatorを使用したビルドガイドがあります。 QGISのアセンブリとデバッグについての記事が多く読まれています(賢明な記事もあります)。 しかし、マニュアルにもリソースにも、私が遭遇した問題の解決策は見つかりませんでした。 そこで、Qt Creatorを使用してWindowsシステム用のQuantumGIS用の独自のビルドガイドを作成するというアイデアが生まれました。



収集する前に



最初に、Qt Creatorをダウンロードしてインストールします。 公式サイトからダウンロードしてください 。 コンパイル済みのQtライブラリを使用しました。 (注意!QgisはQt 5を公式にサポートしていません。Qt4をより良く使用してください ): ここから始めますMicrosoft Windows SDK for Windows 7および.NET Framework 4(ISO)を配置しました (setupapiに必要)

さらに、Qt CreatorでのデバッグにはCDB(MS Debugging Toolsから)が必要です。 ここにあります



CmakeFlex、Bisonもダウンロードしてインストールします。 公式サイトから、OSGeo4Wのバージョンをダウンロードします: こちら 。 起動して、高度なインストール->インターネットからインストールして、クリックします。







次のライブラリを選択します。expat、fcgi、gdal、gdal-dev、iconv、PyQt4、Qt4-Devel、qwt-devel-Qt4、sip、curl、gsl、hdf5、proj、qScintilla2、Sqlite3、libspatialIndex-devel、geos、zlib 。 インストールされるのを待っています。



Qgisソースをダウンロードします。



組立準備



すべてがうまくいったと思います。 必要なものをすべてインストールし、ソースコードをダウンロードしました。 Qt Creatorを起動します。 次に、ファイル->ファイルまたはプロジェクトを開きます。 このダイアログを使用して、CMakeLists.txtファイルを開きます。 ソースにあり、次のようなパスがあります:D:\ qgis2.8.7 \ CMakeLists.txt。 次に、アセンブリの場所を作成するように求められます。 特定のディレクトリを作成します:D:/ Quantum-Gis。

次に、Cmakeビルドオプションを実行するように求められます。 次のパラメーターを使用して実行します:-DCMAKE_BUILD_TYPE = Debug。







Cmakeの起動後、QGISソースが置かれているフォルダーへのパスと、構成が書き込まれるフォルダーへのパスを示します。







その後、「構成」をクリックして「NMake Makefiles」コンパイラーを選択し、「デフォルトのネイティブコンパイラーを使用」マークを残します。 Cmakeは、必要なコンポーネント(赤でマーク)の構成と可用性をチェックします。 構成を表示します。



BISON_EXECUTABLE C:/cygwin64/bin/bison.exe

CMAKE_INSTAL_PREFIX C:/プログラムファイル/ qgis2.8.7

EXPAT_INCLUDE_DIR C:/ OSGeo4W64 /含める

EXPAT_LIBRARY C:/OSGeo4W64/lib/expat.lib

FLEX_EXECUTABLE C:/cygwin64/bin/flex.exe

GDAL_INCLUDE_DIR C:/ OSGeo4W64 /含める

GDAL_LIBRARY C:/OSGeo4W64/lib/gdal_i.lib

GEOS_INCLUDE_DIR C:/ OSGeo4W64 /含める

GEOS_LIBRARY C:/OSGeo4W64/lib/geos_c.lib

POSTGRESQL_INCLUDE_DIR C:/ OSGeo4W64 /含める

POSTGRESQL_LIBRARY C:/OSGeo4W64/lib/libpq.lib

PROJ_INCLUDE_DIR C:/ OSGeo4W64 /含める

PROJ_LIBRARY C:/OSGeo4W64/lib/proj.lib

PYRCC4_PROGRAM C:/OSGeo4W64/bin/pyrcc4.exe

PYTHON_INCLUDE_PATH C:/ Python27 /インクルード

PYTHON_LIBRARY C:/Python27/libs/python27.lib;

PYUIC4_PROGRAM C:/OSGeo4W64/apps/Python27/Lib/site-packages/PyQt4/uic/pyuic.py

QSCINTILLA_INCLUDE_DIR C:/ OSGeo4W64 / include / qt4

QSCINTILLA_LIBRARY C:\ OSGeo4W64 \ lib \ qscintilla2.lib

QSCI_SIP_DIR C:\ OSGeo4W64 \ include

QT_QMAKE_EXECUTABLE C:/Qt/qt-4.8.6-x64-msvc2010/qt-4.8.6-x64-msvc2010/bin/qmake.exe

QWT_INCLUDE_DIR C:/ OSGeo4W64 / include / qwt

QWT_LIBRARY C:/OSGeo4W64/lib/qwt5.lib

SETUPAPI_LIBRARY C:/ Program Files(x86)/ Windows Kits / 8.1 / Lib / winv6.3 / um / x64 / SetupAPI.Lib

SPATIALINDEX_INCLUDE_DIR C:/ OSGeo4W64 / include / spatialindex; C:/ OSGeo4W64 / include

SPATIALINDEX_LIBRARY C:/OSGeo4W64/lib/spatialindex-64.lib; C:/OSGeo4W64/lib/spatialite_i.lib; C:/OSGeo4W64/lib/spatialindex_c-64.lib

SPATIALLITE_INCLUDE_DIR C:/OSGeo4W64/libspatialite-4.3.0a/src/headers

SPATIALLITE_LIBRARY C:/OSGeo4W64/lib/spatialite.lib

SQLITE3_INCLUDE_DIR C:/ OSGeo4W64 /含める

SQLITE3_LIBRARY C:/OSGeo4W64/sqlite3.lib

TXT2TAGS_EXECUTABLE TXT2TAGS_EXECUTABLE-NOTFOUND







構成はエラーなく実行されるはずです。 (注意!フォルダーに環境変数を設定することをお勧めします。そうしないと、すべてのパスを手動で設定する必要があります)。 構成が正常に完了したら、「生成」をクリックして構成ファイルを生成します。 次に、Cmakeを閉じてQt Creatorに戻ります。 [完了]ボタンをクリックします。



プロジェクトの組み立て



次に、プロジェクト自体について説明します。 [プロジェクト]タブに移動します。 上部にあるのは「管理」ボタンです。 開いたウィンドウの[アセンブリと起動]タブ-> [基本]タブで、プロジェクトディレクトリを指定します(例:D:\ Quantum-GIS)。 [テキストエディター]タブ-> [ファイルエンコーディングの動作]->デフォルト値はwindows-1251 / CP1251です。 次に、[ビルドと実行]-> [コンパイラ]タブに戻り、検出されたものの中に、次のコンパイラが少なくともいくつかあることを確認します。







[デバッガ]タブ(ここ)にこれらのデバッガがあります(バージョンは異なる場合があります)。







次に、「Qtバージョン」タブを選択し、「追加」ボタンをクリックして、以前にインストールしたQt Cライブラリへのパスを指定します:Qt \ 4.8.6 \ bin \ qmake.exe。 プロファイル名で、たとえば、Qt 4.8.6 MSVC2010 64bit。

これで、たくさんのツールを作成できます。 [コンポーネント]に移動し、[追加]ボタンをクリックして、新しいバンドルのプロパティでコンポーネントを指定します。 私はそれらを持っています:





(独自のコンパイラとデバッガを使用できます)



最初に「適用」ボタンをクリックして、「パラメータ」を閉じます。 プロジェクトを組み立てる準備ができました。 それを収集するには、下のハンマーアイコンをクリックする必要があります。 コンパイルはエラーなしで行われるはずです。エラーがない場合は、QGISファイル、リンクライブラリがコンパイルされた作成済みフォルダーにダンプする必要があります。



expat.dll、freexl.dll、gdal200.dll、geos_c.dll、hdf5.dll、iconv.dll、jpeg.dll、jpeg12.dll、libcurl.dll、libpq.dll、libtiff.dll、libxml2.dll、ogdi dll、proj.dll、qscintilla2.dll、QtCore4.dll、QtGui4.dll、QtNetwork4.dll、QtSql4.dll、QtSvg4.dll、qwt5.dll、QtXml4.dll、spatialindex-64.dll、spatialite.dll、sqlite3。 dll、szip.dll、xerces-c_3_1.dll zlib.dll。



すべてのライブラリーはフォルダーC:\ OSGeo4W64 \ binにあり、コンパイル済みライブラリーからQtライブラリーを接続しました。 次に、フォルダーC:\ OSGeo4W64 \ etcを、コンパイル済みのQGISファイルがあるフォルダーにコピーします。私の場合は、D:\ Quantum-GIS \ outputです。 また、2つのバッチファイルqgis.batおよびo4w_env.batをC:\ OSGeo4W64 \ binからディレクトリD:\ Quantum-GIS \ output \ binにコピーします。 Qt cCreatorのQgisスタートアップ設定に戻ります。 [プロジェクト]タブで、[起動]タブを開きます。 QGIS exeファイルと作業ディレクトリが配置されているディレクトリを示します。







QGISが起動している場合は、てんとう虫でボタンを押すことでデバッグできます。 お楽しみください。



考えられるエラー



1. Pythonライブラリ。 公式のqgis​​ビルドガイドでは、osge4wにインストールされているpython27ライブラリを選択することを推奨しています。 私は彼女と会うことができませんでした。 公式のPythonサイトから別のpython27ライブラリをダウンロードしました。 稼いだ。

2. Qtをインストールした後、QTDIR環境変数を作成します。 これを行わないと、Qtライブラリに問題が発生し、プロジェクトはそれらを見つけることができません。 (Qt_MOC、QT_RCC、QT_UICでも同じことを行う必要がありますが、それは私なしで機能しました)。

3.ライブラリの問題。 アプリケーションをリリースモードでビルドし、ライブラリをデバッグモードでビルドすると、エラーが発生します。 プロジェクトとライブラリの両方が同じバージョンであることを確認してください。 (これはqwtライブラリで行いました。コンパイラはQWidgetを作成しました。QPaintDeviceの前にQApplicationを構築する必要があります。ライブラリバージョンを置き換えました-動作しました)。



私の記事がお役に立てば幸いです。 Windows 7 x64ビットシステム上でコンパイルされたQgisバージョン2.8.7。



All Articles