2007/07/13

KDEプログラミング その2

KDEプログラミング その1」のつづきです。

チュートリアルを続けます。
今回は行ったのは次のページです。
  p2 : A simple KDE "Hello World" application (Yahoo!翻訳)

前回はQt3のみを使用していましたが、今回はKDEのライブラリを少し使うようです。


前回同様にサンプルプログラムをそのまま打ち込みコンパイル・・・しようと思ってもコンパイル方法が書いていないのは予想通りです。
その程度で慌てません。

そこでまた探してみました。


(1) KDE本家のサイトからなんとか探す
このあたりを読んでみたのですが、よく分かりません。
英語ですし。

なんか、難しそうなことが色々書いてあります。
こんなに難しそうなことをしなくても、サンプルプログラムのコンパイルぐらい出来るだろうと考え、KDE本家のサイトから探すのは保留しました。


(2) 日本KDEユーザ会からなんとか探す
KDE-Tutorial "KDEによるGUI作成"というのがあったのでちょっと読んでみたのですが、コンパイル方法らしきものが見つかりませんでした。
ちゃんと読めば見つかるのかもしれません。

サンプルプログラムがあったので、それのMakefileを(たとえば-lqtを-lqt-mtに)修正してやろうとしたのですが、上手く行きません。
これがなんで上手く行かないのかは検証していないのですが、あとで確認したいと思います。


(3) なにか参考になりそうなソースを探す

KDE本家のダウンロードサイトにkdiffdate-1.0.tar.gzというのがありました。

ファイルサイズも10KBと小さいですし、参考になりそうです。

ダウンロードしてきて解凍し、中のINSTALLファイルを参考にコンパイルしてみました。
$ ./conifugre
$ make

ところが、makeでエラーになります。

./configure で作成したMakefileを見ると、次のところの値がとれていませんでした。
 -I$(KDEDIR)/include
 -L$(KDEDIR)/lib

Makefile中でKDEDIRを設定している箇所はありませんし、環境変数も設定されていません。
しょうがないので次のように修正しました。
 -I$(KDEDIR)/include → -I/usr/include/kde
 -L$(KDEDIR)/lib → -L/usr/lib/kde3

再度makeしました。
$ make

今度は成功したみたいです。


中に入っているconfigureファイルを確認したところ、このソフトkdiffdate.pro から Makefile を作成しているようです。

.proのファイルは前回はqmake -projectコマンドで作成しました。

kdiffdate.proを見てみると、KDE関連の追加と思われる次の箇所がありました。
 INCLUDEPATH += $(KDEDIR)/include
 LIBS += -lkdeui -L$(KDEDIR)/lib

さっき$(KDEDIR)とかあったのは、どうやらkdiffdate.proに書いてあったからのようです。多分。


(4) いよいよチュートリアルのプログラム(p2)をコンパイルする

なんとなくやることが見えてきましたので、再チャレンジです。

上記のとおり、色々試行錯誤してやっています。
正しいのか分かりません。
マネしないでください。


(a) p2.proの作成
$ ls
main.cpp
$ qmake -project
$ ls
main.cpp p2.pro


(b) p2.proの修正
$ cat p2.pro

 〜(略)〜

TEMPLATE = app
CONFIG -= moc
INCLUDEPATH += .

# Input
SOURCES += main.cpp


最後に次の2行を追加します。
 INCLUDEPATH += $(KDEDIR)/include
 LIBS += -lkdeui -L$(KDEDIR)/lib

$ echo INCLUDEPATH += /usr/include/kde >> p2.pro
$ echo LIBS += -lkdeui -L/usr/lib/kde3 >> p2.pro
$ tail -n3 p2.pro
SOURCES += main.cpp
INCLUDEPATH += /usr/include/kde
LIBS += -lkdeui -L/usr/lib/kde3


(c) Makefileの作成
$ ls
main.cpp p2.pro
$ qmake
$ ls
Makefile main.cpp p2.pro


(d) make
$ make
g++ -c -pipe -Wall -W -I/usr/include/freetype2 -O2
-m32 -march=i386 -mcpu=i686 -DQT_NO_DEBUG
-I/usr/lib/qt3/mkspecs/default -I. -I.
-I/usr/include/kde -I/usr/lib/qt3/include -o main.o main.cpp
main.cpp: function 内の `int main(int, char**)':
main.cpp:7: 警告: `__comp_ctor' is deprecated (declared at
/usr/include/kde/kapplication.h:205)
g++ -o p2 main.o -L/usr/lib/qt3/lib
-L/usr/X11R6/lib -lkdeui -L/usr/lib/kde3
-lqt-mt -lXext -lX11 -lm
$


警告は出ますが、なんとか出来たみたいです。


それでは実行してみます。
$ ./p2



おおっ。
前回のQtプログラムと若干違うみたいです。
ちなみに前回はこんな感じでした。



これがKDEの底力か!

・・・警告が気になりますけど。


しかし、サンプルプログラムでこんなにてこずるとは。

ちゃんと読めば、「(1) KDE本家のサイトからなんとか探す」で分かった気がします。


KDEプログラミング その3」へ続く。

0 件のコメント: