waigani's diary

QGISを中心にFOSS4Gをいじくる

QGISをコンパイルしてみる その1

オリジナルのパッケージを作りたい

Building custom QGIS installers for windowsを見てて、なんとなくやってみようと思い立ちました。
ロゴとか変えるだけならコンパイルする必要も無いのですが、なんとなくコンパイルからスタートしちゃいます。

QGISをソースからコンパイル

まずはQGISをソースからコンパイルすることから始めます。
必要な情報はBuilding QGIS from Source、もしくはQGISのソースに入っているINSTALL.pdfを見れば書いてあります。
いくつかやってみてはまった箇所があったのでそこだけ載せます。

  • cmake時に"msvcp100.dll"等が無いと言われる。面倒なので、有るはずと言われるディレクトリを作ってコピーして対応。
  • コンパイル時にproj4の部分でエラーが出ます。proj4だけソースからコンパイルしなおし。cmakeに戻って、自分でコンパイルしたディレクトリを見に行くように変更。
  • INSTALLをコンパイルする際に、ui_*****.pyファイルが無いといっぱい言われる。どうも***.ui→***.pyに変換する際に、1コンパイルで各プロジェクトの1ファイルしか変換してくれていない模様。下記のプロジェクトだけ数回コンパイルして、必要なファイルが出来ていることを確認。

QGISが起動しない

Windows XPコンパイルした際は特に問題なくINSTALL後のQGISを起動できたが、Windows 7で行った際にはQGISが起動してくれませんでした。qgis.exeと同じディレクトリにあるqgispython.dllを削除する(もしくはqgispythonをはずしてコンパイルする)ことで起動はしてくれます。ただしpythonサポートは無しになります。OSの問題なのか、環境の問題かわからず…

DEBUG

Configurationが"DEBUG"でコンパイルするとpythonのところでエラーしてダメでした。
Configurationを"RelWithDebInfo"でINSTALLまでしておき、MSVCで

  • "ツール"→"設定"→"上級用の設定"にしておく
  • QGIS起動
  • "デバッグ"→"プロセスにアタッチ"でQGISを選択

すればデバッグ出来ます。

とりあえずここまで

QGISが落ちるのを何とかしたいのですが…
パッケージ自体はマニュアル通りにubuntuで行えば出来るのはわかったのですが、まだピンと着てないところが沢山。

素直に既存のパッケージを利用して、ロゴとか、入れるプラグインとかだけいじってた方が幸せでしょうか。
もう少しいじってみてから、まとめられたら良いなと。