tizen.moe

tizen.moe

Qt 勉強会 @ Tokyo #53 に参加しました

はじめに

どうも今年は1度も参加出来てなかったみたいなので参加してきました。大体いつもQtと直接関係ないことをしています。
qt-users.connpass.com
1年以上参加していなかったのですがいる人が固定していて大変居心地は良く。そこで違いを強いていうと@task_jpさんがいいお父さんにクラスチェンジしていましたw


tl;dr

  • 過去やっていた内容まで思い出しました
  • やりたいことはろくに出来ていません
  • 先は長いな、、、

やったこと

github.com
もともとは@task_jpさんから貰ったお題で、去年のこのpushをした頃は暇だったので仕事サボってやっておりましたが*1、ホボ進捗無いまま放置していた奴です。

ざっくり自分の認識では、

  1. in kernelで動くfile systemにする
  2. 起動時にinitrd→オンメモリにfsを展開
  3. 期待のバイナリをミニサイズで動かす
  4. 最終的にsilkとかがkernelから展開出来れば面白いんじゃね?

と言うお話。

至近に仕事でやってることとも関わるし、上手くやればしょぼいゲートウェイからクラウドにセンサデータを投げるフレームワークとかができるかも知れません。*2

ビルド手順

を、思い出す。。。

$ git clone https://github.com/moguriso/rootfs_qemu
$ cd rootfs_qemu
$ ./script.sh
$ ./run.sh

足りないdevelとかあったらaptで入れる(環境が新しくないので特に言われた記憶はない)

テスト

取りあえずconsoleが起動するので./scrips.shが一緒にビルドしていた test バイナリをコマンドベースで叩く。

# ./test

りざると

/ # ./test
./test: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
/ #

動きません、と。

やること

調査。対応。動かない理由は割りと自明。つまるところ、必要なライブラリが参照出来ていないだけではある。

/ # export LD_LIBRARY_PATH=/lib
/ # ./test

これなら動く。要はビルド時のパス設定の問題。ココまではわかっている訳ですが。。。
(と言うか、渡された時点で既にココまでは分かっていた訳で)

過去の環境まで戻す

わかっている所まですら動きませんでした。結論から書くと

diff --git a/gcc-4.9.2.sh b/gcc-4.9.2.sh
index 3a7a057..5ee219d 100755
--- a/gcc-4.9.2.sh
+++ b/gcc-4.9.2.sh
@@ -86,7 +86,7 @@ third)
 esac

 # make
+make -j8 2>&1 | tee make.log
-make 2>&1 | tee make.log

gccを並列ビルドにしたのでlibstdc++のビルドでエラー吐いてました。。。
先は長いな、、、

懇親会

T.B.D.

*1:本blogはフィクションです。事実と異なる可能性があります

*2:知りませんが。