Qt開発環境 5.2ベータ

Qt5.2ベータを触ってみることに。
webviewとflashの問題がどうなってるかとか気になったので。

Qt Projectのダウンロードページに、ベータ版はこちら みたいなリンクがあるので辿ってみる。
http://download.qt-project.org/development_releases/qt/5.2/5.2.0-beta1/
※リンクがいつまで残ってるかは不明。
インストール作業は変わらないので省略。

Qt Creatorは5.1.1に付属してるのが2.8.1、5.2.0に付属してるのが2.8.82(3.0.0beta)

以下は5.2.0beta1を使ってみてのメモ等

■Ct Creator起動時にプラグインローダーがHelpを読み込めないって表示される
ダイアログみるとlibHelp.soの読み込みに失敗。このファイルはあって、
(libudev.so.0: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません)
どうやら、こっちのlibudev.so.0が無いとの事。
2.8.1に入ってるlibHelp.soでは不要なのに、2.8.82でlddやるとnot findで出てきますね。
libudev1はあるんだけど…。パッケージマネージャでも0は出てこないし。
1の方が新しいので、リンクしてみる。

$ cd /lib/x86_64-linux-gnu/
$ sudo ln -s libudev.so.1.2.2 libudev.so.0

これで表示できるようになった。betaじゃなくなったら変わるかもしれないね。

■5.1.1の時にビルド出来てたプロジェクトがビルドエラー
不足してる(と思われる)ライブラリ

/usr/bin/ld: cannot find -lgio-2.0
/usr/bin/ld: cannot find -lgstapp-0.10
/usr/bin/ld: cannot find -lgstinterfaces-0.10
/usr/bin/ld: cannot find -lgstpbutils-0.10
/usr/bin/ld: cannot find -lgstvideo-0.10
/usr/bin/ld: cannot find -lgstbase-0.10
/usr/bin/ld: cannot find -lgstreamer-0.10
/usr/bin/ld: cannot find -lgobject-2.0
/usr/bin/ld: cannot find -lgmodule-2.0
/usr/bin/ld: cannot find -lxml2
/usr/bin/ld: cannot find -lgthread-2.0
/usr/bin/ld: cannot find -lglib-2.0
collect2: error: ld returned 1 exit status

以下、参考まで。webkitwidgetのwebviewだけ使ってるプロジェクトの例。
□5.2.0の-L以降の文字列
-L/home/user/Qt5.2.0/5.2.0-beta1/gcc_64/lib
-lQt5WebKitWidgets -lX11 -lgio-2.0 -lgstapp-0.10 -lgstinterfaces-0.10
-lgstpbutils-0.10 -pthread -lgstvideo-0.10 -lgstbase-0.10 -lgstreamer-0.10
-lgobject-2.0 -lgmodule-2.0 -lxml2 -lgthread-2.0 -lrt -lglib-2.0
-lQt5Sql -lQt5Quick -lQt5OpenGL -lQt5PrintSupport -lQt5WebKit -lQt5Qml
-ldl -lQt5Widgets -lQt5Network -lQt5Sensors -lQt5Gui -lQt5Core -lGL -lpthread

□5.1.1の-L以降の文字列
-L/home/user/Qt5.1.1/5.1.1/gcc_64/lib
-lQt5WebKitWidgets -lQt5Quick -lQt5OpenGL -lQt5PrintSupport -lQt5WebKit -lQt5Qml
-lQt5Widgets -lQt5Network -lQt5Sensors -lQt5Gui -lQt5Core -lGL -lpthread

倍くらいに増えてるんですけど…。
不足してるのを入れてったほうがいいのかなー?
betaだから必要なのかなー?
X11とか描画周りに関連してそうだし、不足解消してみよう。

libxml2-dev
libglib2.0-dev libpcre3-dev libpcrecpp0 pkg-config zlib1g-dev
libgstreamer-plugins-base1.0-dev gir1.2-gst-plugins-base-1.0 libgstreamer1.0-dev
libgstreamer-plugins-base0.10-dev gir1.2-gst-plugins-base-0.10 gir1.2-gstreamer-0.10 libgstreamer0.10-dev
以上が追加してみたパッケージ。
4行あるけど、一番左のが追加指定。右に並んでるのは依存により追加になったもの。
後半のlibgstreamerは2バージョンのうちどっちが必要か不明なので両方入れた。
(devではないライブラリパッケージも両方入っていた為)
これらを追加することで、ビルドが通るようになった。

デバッグ実行開始…できない。デバッガが設定されてませんって。
Qt Creatorオプション→ビルドと実行。
今回のからDebuggersタブが追加されていて、
Auto-detectedにGDBがあるんだけどなぁ。
Manualはもちろん空。試しにClone押してManualにも同じのを入れてみる。
するとデバッグ実行できる。betaだからってことにしておこう。

サンプルプログラムでyoutube見てみると!?
・動画再生できる(これは前回も出来た)
・再生ボタンとかクリック操作できる(改善)
・メニュー操作できる(改善)
・右クリックメニューできる(改善)
コンテキストメニューは表示位置がマウスカーソルと最上位項目が重なってて同時判定されちゃうのが難。
…これはデスクトップ環境によって変わるかもしれない。
flash上でflash設定メニューにならないのは何かコード書かないとだめなのかも?

続いて艦メモやってみる。
twitter4qmlを忘れずに5.2.0に追加しておく。
艦メモはgit pullして最新にした状態で。
出来上がったものを起動してみる。30%で止まる?
ブラウザ→キャッシュクリアして再起動。
で、恐る恐るメニューバークリックするとちゃんと使える!
右クリックも出来る…けど前述の通りリロード判定されちゃうので使わない。
設定ファイルがアプリ同位置からユーザディレクトリ下位に移ったから、本家ビルドと独自ビルドの並行利用は面倒そうね。
…起動パラメータで設定ファイル位置選べれば…とか開発者しかメリットないけど。

オリジナル版というかダウンロードしてきたものや、5.1.1でビルドしたものだとやっぱりダメなので、
パッケージ不足ではなくQt5.1系のビルド環境(リンクパラメータ?)が原因だったような感じ。
このパラメータIDE側で付けてくれてるけど、調整できるならもしかしたら?
5.2系のリリース版が待ち遠しい。そして5.1.1の綺麗なアンインストール方法調査しよう。