2006年4月25日の日記を表示中

2006年 4月 25日 (火)

KO/Piのビルド

昨日途中まで書きましたが,T42でKO/Piビルドしようとしたら以下のようなエラーがでてしょんぼりでした.

g++ -c -pipe -Wall -W -O2 -fPIC  -DDESKTOP_VERSION -DQT_NO_DEBUG -DQT_SHARED -DQT_THREAD_SUPPORT -I/usr/local/share/qt/mkspecs/default -I. -I/usr/local/include/qt -I../qpe -I.. -I../../microkde -I../../microkde/kdecore -I../../libetpan/include -I/usr/local/include -Imoc/unix/ -o obj/unix/qdialog_hacked.o ../qpe/qdialog_hacked.cpp
../qpe/qdialog_hacked.cpp:9: error: 文法エラー before `::' token

(以下略)

qdialog_hacked.cppを見ても,文法に問題があるようには見えません.普通にQtのヘッダincludeしてるだけに見えます・・・.

#include <qdialog.h>
#include <qhbox.h>
#include <qpushbutton.h>
#include <klocale.h>

うーん,includeが怪しい.というわけで,ごそごそあさってみたら,qdialog.hをkmicromail/qpe/以下に自前でもってることが発覚.中を見ると

#ifndef DEFINE_QDIALOG_HACK
#define DEFINE_QDIALOG_HACK
#warning call of include <qdialog.h>
#warning including /usr/local/qt/include/qdialog.h
#warning if you get a compiling error
#warning please adjust your path here!

#include "/usr/local/qt/include/qdialog.h"

なんて書いてあるし(;´Д`).「/usr/local/qt/include/qdialog.h」はひどいよなぁ・・・.自分の環境にあわせて「/usr/local/include/qt/qdialog.h」に直して,さらにMakefile内で kmicromail/qpe/qdialog.h が先にincludeされるように「-I../qpe」を手前にもってきてここは解決.ふぅ,挫折しなくてよかった・・・.

あと,何かわからんのですが,普通にmakeするとuicがセグります.

/usr/local/bin/uic kofilterview_base.ui -i kofilterview_base.h -o kofilterview_base.cpp
make[1]: *** [kofilterview_base.cpp] セグメンテーション違反です

gdbで見てみると,以下のような感じで,なぜかlibkdeui.so.4が呼ばれています・・・.実はこれ,いつ頃からかQt自体をビルドする間にも出るようになって,Qt作るときはkdelibsも一旦消しておくとかいうひどいwork aroundで逃げてたんですが,やっぱおかしい・・・.

(gdb) bt
#0  0xb7f4be19 in do_lookup () from /lib/ld-linux.so.2
#1  0xb7f4aeb9 in _dl_lookup_symbol_internal () from /lib/ld-linux.so.2
#2  0xb7f4e9df in fixup () from /lib/ld-linux.so.2
#3  0xb7f4ebd0 in _dl_runtime_resolve () from /lib/ld-linux.so.2
#4  0x080c6ae8 in ?? ()
#5  0x000060d8 in ?? ()
#6  0xb67a0ac8 in __static_initialization_and_destruction_0 ()
   from /usr/local/lib/libkdeui.so.4
#7  0xb690a70a in global destructors keyed to _ZN7QXEmbed7metaObjE ()
   from /usr/local/lib/libkdeui.so.4
#8  0xb679feab in __do_global_dtors_aux () from /usr/local/lib/libkdeui.so.4
#9  0xb6927916 in _fini () from /usr/local/lib/libkdeui.so.4
#10 0xb7f4f421 in _dl_fini () from /lib/ld-linux.so.2
#11 0xb73246ac in exit () from /lib/libc.so.6
#12 0xb730f82b in __libc_start_main () from /lib/libc.so.6
#13 0x0804e3c1 in ?? ()

とりあえずuic自体がlibkdeui.so.4に直接リンクしてるわけではないと思うわけで,そうなるとuicの中でライブラリ読み込んでたりするのかな?「uic --help」すると「-nounload」なんて怪しげなオプションが表示されて,説明には

Don't unload plugins after processing

なんてあります.試しにつけてみたら・・・セグらず通ったしヽ(゜∀゜)ノ.ううむ,なんなんだこりゃ.ググるとkitaのスレが出てきますね(^^;.とりあえずこれを付けてKO/Piのビルドは完走.後でちゃんと調べよう.

ちなみに,同じようにQt入れてるから当然なんですが,Zaurusでも同じようにqdialog_hacked.cpp問題が出ました.で,同じように解決.T42で練習しておいてほんとよかったっす.ていうかkmicromailって,実はkopi本体と関係ないんじゃ・・・(;´Д`)?

KO/Piを使ってみた

で,先にビルドできたT42の方で使ってみました.コメント欄にもありますが,usertranslation.txt を持ってきて,さらに日本の祝祭日の入ったicsファイルをゲットしてきて(ゲット元失念orz)取り込んで,(゜Д゜)ウマーな感じです.これはイケる予感!使い込みたいところですね.

ここの日記

月末になるとサイズが増えて転送量が増えてうざいから来月末にはなんとかするという話を先月末に書いたわけですが,実際やってみると,元が元なだけに色々面倒だということが判明.特に右側の柱にあるカレンダーの扱いが悩ましい限りです.まー,どうにかします.

[コメントを書く]

nosuke 2006/04/30(日) 20:18:17
やってみました.コメントテスト

2006年4月25日の日記を表示中

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2006年4月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ